O documento apresenta os conceitos e vantagens do desenvolvimento web em três camadas utilizando PHP, MVC e AJAX. Aborda tópicos como orientação a objetos, padrão MVC, bibliotecas JavaScript para AJAX e exemplos práticos de implementação.
Classe V: Educação à distância com Videoconferência no Moodle
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
1. Desenvolvimento em três camadas
com PHP 5, MVC e AJAX
Almir Neto – almirneto@gmail.com
Otá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
2. 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
●
3. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Nova forma de pensar?
Nova tecnologia?
Revolução?
3
4. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
POOMAX
• PHP
• Orientação a Objetos
MVC
•
• AJAX
4
5. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
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
5
6. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
O que é Web 2.0?
quot;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 coletivaquot;
Tim O'Reilly
6
7. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
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
7
8. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Paradigmas de Programação
• Programação Estruturada
• Orientação a Objetos
– C++
– Java
– JavaScript
– Perl
– PHP
– Python
– Ruby
– Outras ...
8
9. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Orientação a Objetos
• Conceito
• Classes
• Objetos
• Métodos
Atributos
•
9
10. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Orientação a Objetos
• Modificadores de Acesso
– Public
– Private
– Protected
• Palavra-Chave 'final'
10
11. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Orientação a Objetos
• Herança
• Encapsulamento
– getXXX();
– setXXX();
11
12. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
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
12
13. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
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
13
14. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Frameworks MVC
• Akelos
• CakePHP
CodeIgniter
•
• PHP on Trax
• Prado
Symphony
•
Zend
•
• Outros ...
14
15. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Camadas
• Model
– Bean
– DAO
– Actions
• View
• Controller
15
16. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Model
• Bean
– Entidade
– Segurança
– Encapsulamento
– Vantagens
16
18. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Model
• DAO – Data Access Object
– Persistência
– Portabilidade
– Independência
– Bibliotecas
• Doctrine
• Propel
• Pear::DB_DataObject
18
24. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Controller
• Segurança
• Controlar fluxo da aplicação
– Inicia e finaliza o fluxo
• Utilização de Web Services
– Interoperabilidade
24
26. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Estrutura de diretórios
• /aplicacao
– controle.php
– /modulo
• /action
/view
•
• modulo.php (Bean)
• moduloDAO.php
26
28. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Conclusões sobre o MVC
• Manter o baixo acoplamento
• Evitar regras de negócio no Controller
• Nem tudo em três camadas é MVC
28
29. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
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
29
30. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Fluxo na WEB
Sem AJAX Com AJAX
Navegador Navegador
Pag. WEB
Pag. WEB
Servidor da Servidor da
Pag. WEB Aplicação Aplicação
Página
WEB WEB
da WEB
Pag. WEB
Pag. WEB
Pag. WEB
30
31. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
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.
31
32. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
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.
32
33. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Principais métodos do XHR
• open(método, URL, async, usuário, senha);
• send(parâmetros);
• abort();
• setRequestHeader(propriedade, valor);
33
34. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Propriedades do XHR
• onreadystatechange
• readyState
status
•
• statusText
responseText
•
• responseXML
34
35. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
A Resposta
• XML
• HTML
• Script
• Texto
JSON
•
35
36. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Bibliotecas JavaScript
• jQuery
• MooTools
• Prototype
• Dojo
Rico
•
extJS
•
36