View
23.307
Download
7
Category
Preview:
DESCRIPTION
Palestra ministrada no CONAPHP/CONISLI de 2008 explicando como funciona o padrão de arquitetura Model-View-Controller, em PHP, sem uso de frameworks. É tambem analisada a integração deste com AJAX, de forma simples.
Citation preview
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Almir Neto – almirneto@gmail.comOtávio Calaça – otaviocx@gmail.com
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● http://www.gophp.com.br
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
3
Nova forma de pensar?Nova tecnologia?
Revolução?
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
4
POOMAX• PHP• Orientação a Objetos• MVC• AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
5
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
6
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
7
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
8
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
9
Orientação a Objetos• Conceito• Classes• Objetos• Métodos• Atributos
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
10
Orientação a Objetos• Modificadores de Acesso
– Public– Private– Protected
• Palavra-Chave 'final'
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
11
Orientação a Objetos• Herança • Encapsulamento
– getXXX();– setXXX();
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
12
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
13
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
14
Frameworks MVC • Akelos• CakePHP• CodeIgniter• PHP on Trax• Prado• Symphony• Zend• Outros ...
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
15
Camadas• Model
– Bean– DAO– Actions
• View • Controller
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
16
Model• Bean
– Entidade– Segurança– Encapsulamento– Vantagens
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
17
Bean – Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
18
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
19
DAO – Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
20
Model• Action
– Regras do Negócio– Integra Bean, DAO e Views
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
21
Action – Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
22
View• Ajax• Templates • Web Standards• GTK (desktop)
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
23
View – Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
24
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
25
Controller - Exemplo
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
26
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
27
Fluxo da aplicação MVC
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
28
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
29
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
30
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
31
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
32
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
33
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
34
Propriedades do XHR• onreadystatechange• readyState• status • statusText• responseText • responseXML
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
35
A Resposta• XML• HTML• Script• Texto• JSON
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
36
Bibliotecas JavaScript• jQuery• MooTools• Prototype• Dojo• Rico• extJS
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
37
Agradecimentos
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
38
Perguntas?
Almir Netoalmirneto@gmail.com
Otávio Calaçaotaviocx@gmail.com
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
39
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
Recommended