Você está na página 1de 29

Desenvolvimento gil para Web

Utilizando PHP e o Framework Yii


Leonardo N. dos Santos Semana de Informtica 2011 IFAM Parintins

Quem sou eu?

Estudante de Doutorado em Informtica


Universidade Federal do Amazonas
Ambientes Virtuais na Web
Scio da Empresa Nhemu Servios de
Tecnologia da Informao
Colega de faculdade do Prof. David Brito
Trabalho desenvolvendo Ambientes Virtuais
na Web
Desenvolvendo tecnologias para sites de
comrcio eletrnico.

Roteiro

Introduo
Aplicaes Web
Exemplo: Um Blog Simples
Desenvolvendo do Zero
Usando o Framework Yii
Consideraes Finais

Introduo

A Web est cada vez mais se povoando de


aplicaes
No incio, pouco produziam e muitos liam
Agora, muitos produzem:

Contedo
Aplicaes

Web 2.0 ou Web Social


Muitos Frameworks de Desenvolvimento
Framework: conjunto de cdigos reusveis
para desenvolvimento de sistemas de
software.

Aplicaes Web

Cliente
x
Browser
pginas HTTP
Internet Explorer
Mozilla Firefox
Google Chrome
Opera

Servidor
Servidor de

Aplicaes Web
Banco de Dados

Exemplo: Um Blog Simples

Blog = Web Log = Dirio na Web


Lista de Posts organizados de forma
cronolgica, do mais recente para os mais
antigos.
Escrito por uma ou mais pessoas.
Permite Comentrios nos Posts

Funcionalidades do Blog
Donos

do sistema:

Login e Logout
Criar, Alterar e Remover Posts
Publicar, Despublicar e Arquivar Posts
Aprovar e Remover Comentrios

Os

usurios:

Ler Posts
Criar Comentrios

Blog: Requisitos
Autores

do Blog

Login e Logout
Criar, Atualizar e deletar Posts
Publicar, despublicar e arquivar Posts
Aprovar e deletar Comentrios

Outros

usurios da Web

Ler Posts
Criar comentrios

Blog: Requisitos

Homepage deve mostrar uma lista dos pots


mais recentes
Se existir mais de 10 posts, eles devem ser
exibidos em pginas
Os posts devem ser mostrados juntos com
seus comentrios
Mostrar os posts de uma Tag especfica
Mostrar um nuvem de tags indicando sua
frequncia de uso
Mostrar uma lista dos comentrios mais
recentes
Aplicao de temas de apresentao

10

BD

11

Navegao: Pgina Inicial (Homepage)

Header: Login

Lista de Posts ordenados pelos mais recentes


Paginao
Filtro por Tag
Cada Post tem um link para uma pgina de comentrios,
indicando o nmero de comentrios

Links de Gerenciamento

Criar post
Gerenciar Posts
Aprovar comentrios

Nuvem de Tags
Lista de Comentrios mais recentes
12

Navegao: Outras Pginas


Pgina

do Post e seus comentrios


Novo Post
Gerenciar Posts

Lista de posts com aes de alterao

Aprovar

13

Comentrios

Lista de comentrios pendentes de


aprovao

Blog: Outras Coisas para se Preocupar

Conexo e aquisio de informaes do BD


Login/Logout
Temas de Apresentao
Editor de texto dos Posts (WYSIWYG)
Validao de Formulrios
Web 2.0: Ajax

14

Blog: Concluso

MUUUUIIITO TRABALHO!!!
Apesar de parecer simples, d um certo
trabalho.
Programadores experientes j possuem um
arsenal de modelos de cdigos.
Difcil manuteno de aplicaes maiores.
Tcnicas atuais: mdulos, componentes,
linhas de produo de software.
Ou use um Framework de Desenvolvimento!

15

Yii: Yes It is!

http://www.yiiframework.com/

Framework: um conjunto de cdigos,


bibliotecas ou classes reusveis para se
desenvolver sistemas.
Muitas das coisas usuais no desenvolvimento
de aplicaes Web j esto codificadas, basta
usar.

16

MVC: Model View Control


Padro

de arquitetura de software
destinado a aplicaes com alto nvel
de interatividade, cujo objetivo
melhorar a usabilidade da
aplicao, pois permite que a
interface se ajuste (possivelmente
em tempo de execuo)
independemente do seu ncleo de
funcionalidades

17

MVC: Model View Control

18

MVC: Model View Control


Model: gerencia o comportamento e os dados do
domnio da aplicao, responde a solicitaes de
informaes sobre seu estado (geralmente pela
view), e responde a instrues de mudana de
estado.
View: gerencia a sada grfica/textual para a
poro da tela alocada para a aplicao. No caso
de aplicaes web, trata-se daquilo que visto no
browser do usurio.
Controller: interpreta as entradas de dados do
usurio pelo mouse e teclado, comandando
modificaes ao model e/ou view conforme o
caso.

19

Yii e MVC

Model

Controller

baseado no esquema do banco de dados


No depende de SGBD especfico (Mysql, Oracle, Sqlite, ...)
Implementa relaes de Chave Estrangeira
Acessado como Objeto
Realiza as aes de alterao de dados no model
Consulta o Model e chama as views: quais dados so
mostrados.
Cada entidade possui um controller.

Views

20

Front-end: como os dados do mostrados na pgina.


Uma view para cada pgina.

Porque MVC flexvel?


Cultura

do Beta Perptuo
Aplicaes sempre se modificando
Interface sempre com novas
novidades: desktop-like
Funcionalidades das aplicaes so
sempre incrementadas
Aplicaes difceis de usar no so
usadas e so substitudas por outras
mais fceis.
21

Yii: funcionamento geral

passado para o Yii o esquema do


banco de dados.
escolhido quais tabelas voc quer
que se gerem pginas
Lista
Consultar
Inserir
Alterar
Apagar

22

BD

23

Yii: funcionamento geral


Configurar

as chaves estrangeiras.
Configurar opes de Login.
Configurar a pgina inicial.

24

Yii: coisas prontas


Conexo

e aquisio de informaes

do BD
Login/Logout
Temas de Apresentao
Editor de texto dos Posts (WYSIWYG)
Validao de Formulrios

preciso configurar os campos


obrigatrios

Web
25

2.0: Ajax

Instalar o Yii
Servidor

AMP: Apache + MySQL + PHP

Windows:
Wamp
EasyPHP
XAMPP
Linux:
Ubuntu: Synaptic--> apache2, mysqlserver, php5

Yii

26

Framework

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/scre
encast-how-to-create-a-blog-system-u
sing-yii-in-less-than-30-minutes
/
Como

criar um sistema de blog


usando Yii em menos de 30 minutos

27

Na Prtica!

http://localhost/yii/demos/blog/

28

Consideraes Finais

Experincia pessoal

J desenvolvi aplicaes do zero.


J dei manuteno em aplicaes que outras pessoas
desenvolveram.
J desenvolvi aplicaes partindo de CMS.

Achei o Yii uma mo na roda.

29

No sei trabalhar direito com Ajax.


No tenho pacincia para fazer validao de formulrio.
No sei fazer um design bom.
No sei organizar meu cdigo direito.
Perdia muito tempo com detalhes de sistema em vez
de desenvolver as funcionalidades da minha
aplicao.
Muitas vezes, esses detalhes tinham bug.

Você também pode gostar