Upload
almir-neto
View
8.237
Download
0
Embed Size (px)
DESCRIPTION
Slides used at CONAPHP 2008. The main subject is software development with PHP, MVC and AJAX
Citation preview
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Almir Neto – [email protected]ávio Calaça – [email protected]
http://phpendo.blogspot.com
CoNaPHP – CONISLI 2008
http://www.conaphp.com.br/
São Paulo, 18 e 19 de Outubro de 2008
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Grupo de Desenvolvedores PHP de Goiás
● Lista de Discussão● Troca de Conhecimentos● Encontros● Palestras● Eventos● Networking
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
3
Roteiro• Web 2.0• Orientação a Objetos• MVC
– Vantagens– Frameworks– Camadas– Estrutura de Diretórios– Fluxo da Aplicação
• AJAX– XMLHttpRequest
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
4
A ascensão da Web 2.0• O ápice da Web 1.0
– A mania ponto com• O estouro da Bolha
– A queda da Bolsa de Valores NASDAQ• Novos conceitos e novo paradigma para a Web
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
5
O que é Web 2.0? "Web 2.0 é a mudança para uma internet como
plataforma, e um entendimento das regras para obter sucesso nesta nova plataforma. Entre outras, a regra
mais importante é desenvolver aplicativos que aproveitem os efeitos de rede para se tornarem
melhores quanto mais são usados pelas pessoas, aproveitando a inteligência coletiva"
Tim O'Reilly
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
6
Regras da Web 2.0 • O beta perpétuo• A Web é a Plataforma
– O navegador fornece aplicações e não conteúdo• Interatividade
– Cooperativismo• Desenvolvimento Modular e Inteligente
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
7
Paradigmas de Programação• Programação Estruturada• Orientação a Objetos
– C++– Java– JavaScript– Perl– PHP– Python– Ruby– Outras ...
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
8
Orientação a Objetos• Conceito• Classes• Objetos• Métodos• Atributos
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
9
Orientação a Objetos• Modificadores de Acesso
– Public– Private– Protected
• Palavra-Chave 'final'
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
10
Orientação a Objetos• Herança • Encapsulamento
– getXXX();– setXXX();
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
11
O que é MVC?• Aplicações Monolíticas• Aplicações em duas camadas • MVC (Model-View-Controller)
– Padrão de Arquitetura– É um conceito – Fácil manutenção – Objetivos – Frameworks
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
12
Vantagens do MVC • Reaproveitamento de código • Facilidade de manutenção• Integração de equipes e/ou divisão de tarefas • Camada de Persistência independente • Implementação de segurança • Facilidade na alteração da interface da
aplicação
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
13
Frameworks MVC • Akelos• CakePHP• CodeIgniter• PHP on Trax• Prado• Symphony• Zend• Outros ...
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
14
Camadas• Model
– Bean– DAO– Actions
• View • Controller
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
15
Model• Bean
– Entidade– Segurança– Encapsulamento– Vantagens
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
16
Bean – Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
17
Model• DAO – Data Access Object
– Persistência– Portabilidade– Independência– Bibliotecas
• Doctrine• Propel• Pear::DB_DataObject
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
18
DAO – Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
19
Model• Action
– Regras do Negócio– Integra Bean, DAO e Views
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
20
Action – Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
21
View• Ajax• Templates • Web Standards• GTK (desktop)
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
22
View – Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
23
Controller• Segurança
• Controlar fluxo da aplicação– Inicia e finaliza o fluxo
• Utilização de Web Services– Interoperabilidade
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
24
Controller - Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
25
Estrutura de diretórios• /aplicacao
– controle.php– /modulo
• /action• /view• modulo.php (Bean)• moduloDAO.php
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
26
Fluxo da aplicação MVC
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
27
Conclusões sobre o MVC• Manter o baixo acoplamento
• Evitar regras de negócio no Controller
• Nem tudo em três camadas é MVC
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
28
O que é AJAX?• Requisição Comum• Outras soluções
– Adobe Flash (Action Script)– IFrames
• AJAX (Asynchronous Javascript And XML)– Maior Interação com o Usuário
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
29
Fluxo na WEB
Servidor da Aplicação
WEB
NavegadorPag. WEB
Pag. WEB
Pag. WEB
Pag. WEB
Pag. WEB
Pag. WEB
Servidor da Aplicação
WEB
Navegador
Página da WEB
Sem AJAX Com AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
30
Vantagens do AJAX• Possibilita estender os eventos até o
servidor;• Menor tráfego na rede;• Transparência para o usuário;• Semelhança com aplicações Desktop.
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
31
O Objeto XMLHttpRequest • Requisição Assincrona;
• Ainda não é uma recomendação padronizada pela W3C (último Working Draft data de 15/04/2008);
• Divergências entre navegadores.
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
32
Principais métodos do XHR• open(método, URL, async, usuário, senha);• send(parâmetros);• abort();• setRequestHeader(propriedade, valor);
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
33
Propriedades do XHR• onreadystatechange• readyState• status • statusText• responseText • responseXML
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
34
A Resposta• XML• HTML• Script• Texto• JSON
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
35
Bibliotecas JavaScript• jQuery• MooTools• Prototype• Dojo• Rico• extJS
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
36
Agradecimentos
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
37
Perguntas?
Almir [email protected]
Otávio Calaç[email protected]
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
38
Referências• Trygve's Homepage
http://heim.ifi.uio.no/trygver/• PHP: Hypertext Preprocessor
http://www.php.net• PHP Frameworks
http://www.phpframeworks.com/• JQuery
http://jquery.com/• PHP Magazine
http://www.phpmagazine.org.br