Post on 23-Feb-2016
description
Desenvolvimento Ágil para Web Utilizando PHP e o Framework Yii
Leonardo N. dos Santos – Semana de Informática 2011 – IFAM Parintins
2
Quem sou eu? Estudante de Doutorado em Informática
Universidade Federal do Amazonas Ambientes Virtuais na Web Sócio da Empresa Nhemu Serviços de
Tecnologia da Informação Colega de faculdade do Prof. David Brito
Trabalho desenvolvendo Ambientes Virtuais na Web
Desenvolvendo tecnologias para sites de comércio eletrônico.
3
Roteiro Introdução Aplicações Web Exemplo: Um Blog Simples Desenvolvendo do Zero Usando o Framework Yii Considerações Finais
4
Introdução A Web está cada vez mais se povoando de
aplicações No início, pouco produziam e muitos liam Agora, muitos produzem:
Conteúdo Aplicações
Web 2.0 ou Web Social Muitos Frameworks de Desenvolvimento Framework: conjunto de códigos reusáveis
para desenvolvimento de sistemas de software.
5
Aplicações Web Cliente x Servidor Browser Servidor de
páginas HTTP
Internet Explorer Mozilla Firefox Google Chrome Opera
6
Aplicações Web
Banco de
Dados
Gerador de
PáginasServidor
HTTPInternet .
.. Browser
7
Exemplo: Um Blog Simples Blog = Web Log = Diário na Web Lista de Posts organizados de forma
cronológica, do mais recente para os mais antigos.
Escrito por uma ou mais pessoas. Permite Comentários nos Posts
8
Funcionalidades do Blog Donos do sistema:
Login e Logout Criar, Alterar e Remover Posts Publicar, Despublicar e Arquivar Posts Aprovar e Remover Comentários
Os usuários: Ler Posts Criar Comentários
9
Blog: Requisitos Autores do Blog
Login e Logout Criar, Atualizar e deletar Posts Publicar, despublicar e arquivar Posts Aprovar e deletar Comentários
Outros usuários da Web Ler Posts Criar comentários
10
Blog: Requisitos Homepage deve mostrar uma lista dos pots
mais recentes Se existir mais de 10 posts, eles devem ser
exibidos em páginas Os posts devem ser mostrados juntos com
seus comentários Mostrar os posts de uma Tag específica Mostrar um nuvem de tags indicando sua
frequência de uso Mostrar uma lista dos comentários mais
recentes Aplicação de temas de apresentação
11
BD
12
Navegação: Página Inicial (Homepage) Header: Login
Lista de Posts ordenados pelos mais recentes Paginação Filtro por Tag Cada Post tem um link para uma página de comentários,
indicando o número de comentários
Links de Gerenciamento Criar post Gerenciar Posts Aprovar comentários
Nuvem de Tags Lista de Comentários mais recentes
13
Navegação: Outras Páginas Página do Post e seus comentários Novo Post Gerenciar Posts
Lista de posts com ações de alteração Aprovar Comentários
Lista de comentários pendentes de aprovação
14
Blog: Outras Coisas para se Preocupar Conexão e aquisição de informações do BD Login/Logout Temas de Apresentação Editor de texto dos Posts (WYSIWYG) Validação de Formulários Web 2.0: Ajax
15
Blog: Conclusão É MUUUUIIITO TRABALHO!!! Apesar de parecer simples, dá um certo
trabalho.
Programadores experientes já possuem um “arsenal” de modelos de códigos.
Difícil manutenção de aplicações maiores. Técnicas atuais: módulos, componentes,
linhas de produção de software.
Ou use um Framework de Desenvolvimento!
16
Yii: Yes It is! http://www.yiiframework.com/
Framework: um conjunto de códigos, bibliotecas ou classes reusáveis para se desenvolver sistemas.
Muitas das coisas usuais no desenvolvimento de aplicações Web já estão codificadas, basta usar.
17
MVC: Model – View – Control Padrão de arquitetura de software
destinado a aplicações com alto nível de interatividade, cujo objetivo é melhorar a usabilidade da aplicação, pois permite que a interface se ajuste (possivelmente em tempo de execução) independemente do seu núcleo de funcionalidades
18
MVC: Model – View – Control
VIEW
CONTROLLER
MODEL
vê modifica
atualiza
gera input
consulta
19
MVC: Model – View – Control Model: gerencia o comportamento e os dados do
domínio da aplicação, responde a solicitações de informações sobre seu estado (geralmente pela view), e responde a instruções de mudança de estado.
View: gerencia a saída gráfica/textual para a porção da tela alocada para a aplicação. No caso de aplicações web, trata-se daquilo que é visto no browser do usuário.
Controller: interpreta as entradas de dados do usuário pelo mouse e teclado, comandando modificações ao model e/ou à view conforme o caso.
20
Yii e MVC Model
baseado no esquema do banco de dados Não depende de SGBD específico (Mysql, Oracle, Sqlite, ...) Implementa relações de Chave Estrangeira Acessado como Objeto
Controller Realiza as ações de alteração de dados no model Consulta o Model e chama as views: quais dados são
mostrados. Cada entidade possui um controller.
Views Front-end: como os dados dão mostrados na página. Uma view para cada página.
21
Porque MVC é flexível? Cultura do Beta Perpétuo Aplicações sempre se modificando Interface sempre com novas
novidades: desktop-like Funcionalidades das aplicações são
sempre incrementadas Aplicações difíceis de usar não são
usadas e são substituídas por outras mais fáceis.
22
Yii: funcionamento geral É passado para o Yii o esquema do
banco de dados. É escolhido quais tabelas você quer
que se gerem páginas Lista Consultar Inserir Alterar Apagar
23
BD
24
Yii: funcionamento geral Configurar as chaves estrangeiras. Configurar opções de Login. Configurar a página inicial.
25
Yii: coisas prontas Conexão e aquisição de informações
do BD Login/Logout Temas de Apresentação Editor de texto dos Posts (WYSIWYG) Validação de Formulários
É preciso configurar os campos obrigatórios
Web 2.0: Ajax
Log do sistema
26
Instalar o Yii Servidor AMP: Apache + MySQL + PHP
Windows:WampEasyPHPXAMPP
Linux:Ubuntu: Synaptic--> apache2, mysql-
server, php5 Yii Framework
http://www.yiiframework.com/download/
27
Blog no Yii: 30 minutos How to create a blog system using Yii
in less than 30 minutes http
://www.yiiframework.com/news/14/screencast-how-to-create-a-blog-system-using-yii-in-less-than-30-minutes/
Como criar um sistema de blog usando Yii em menos de 30 minutos
28
Na Prática! http://localhost/yii/demos/blog/
29
Considerações Finais Experiência pessoal
Já desenvolvi aplicações do zero. Já dei manutenção em aplicações que outras pessoas
desenvolveram. Já desenvolvi aplicações partindo de CMS.
Achei o Yii uma “mão na roda”. Não sei trabalhar direito com Ajax. Não tenho paciência para fazer validação de formulário. Não sei fazer um design bom. Não sei organizar meu código direito. Perdia muito tempo com detalhes de sistema em vez
de desenvolver as funcionalidades da minha aplicação.
Muitas vezes, esses detalhes tinham bug.