Desenvolvimento Ágil para Web
Utilizando PHP e o Framework Yii
Leonardo N. dos Santos – Semana de Informática 2011 –
IFAM Parintins
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.


2
Roteiro
Introdução
Aplicações Web
Exemplo: Um Blog Simples
Desenvolvendo do Zero
Usando o Framework Yii
Considerações Finais






3
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.



4
Aplicações Web
Cliente
Browser


Internet Explorer
Mozilla Firefox
Google Chrome
Opera




5
x
Servidor
Servidor de
páginas HTTP
Aplicações Web
6
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




7
Funcionalidades do Blog

Donos do sistema:





Os usuários:


8
Login e Logout
Criar, Alterar e Remover Posts
Publicar, Despublicar e Arquivar Posts
Aprovar e Remover Comentários
Ler Posts
Criar Comentários
Blog: Requisitos

Autores do Blog





Outros usuários da Web


9
Login e Logout
Criar, Atualizar e deletar Posts
Publicar, despublicar e arquivar Posts
Aprovar e deletar Comentários
Ler Posts
Criar comentários
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
10
BD
11
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
12
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

13
Lista de comentários pendentes de aprovação
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
14
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!
15
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.

16
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
17
MVC: Model – View – Control
VIEW
vê
modifica
gera
input
CONTROLLER
atualiza
MODEL
18
consulta
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.
19
Yii e MVC

Model





Controller




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
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


20
Front-end: como os dados dão mostrados na página.
Uma view para cada página.
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.

21
Yii: funcionamento geral
É passado para o Yii o esquema do banco de
dados.
 É escolhido quais tabelas você quer que se
gerem páginas






22
Lista
Consultar
Inserir
Alterar
Apagar
BD
23
Yii: funcionamento geral
Configurar as chaves estrangeiras.
 Configurar opções de Login.
 Configurar a página inicial.

24
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
25
Instalar o Yii

Servidor AMP: Apache + MySQL + PHP



Windows:
 Wamp
 EasyPHP
 XAMPP
Linux:
 Ubuntu: Synaptic--> apache2, mysql-server, php5
Yii Framework

26
http://www.yiiframework.com/download/
Blog no Yii: 30 minutos
How to create a blog system using Yii in less
than 30 minutes
 http://www.yiiframework.com/news/14/screenc
ast-how-to-create-a-blog-system-using-yii-inless-than-30-minutes/


Como criar um sistema de blog usando Yii em
menos de 30 minutos
27
Na Prática!

http://localhost/yii/demos/blog/
28
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”.






29
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.
Download

Desenvolvimento Ágil para Web Utilizando Yii