O documento apresenta um roteiro para um treinamento sobre desenvolvimento web em três camadas usando PHP, MVC e AJAX. Aborda conceitos como orientação a objetos, MVC, camadas, estrutura de diretórios, AJAX e bibliotecas JavaScript. O objetivo é ensinar boas práticas de programação para desenvolvimento de aplicações web dinâmicas e escaláveis.
Desenvolvimento em Três Camadas com PHP, 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
●
3. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Roteiro
• Web 2.0
• Orientação a Objetos
• MVC
Vantagens
–
Frameworks
–
Camadas
–
– Estrutura de Diretórios
Fluxo da Aplicação
–
• AJAX
– XMLHttpRequest
3
4. 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
4
5. 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
5
6. 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
6
7. 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 ...
7
8. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Orientação a Objetos
• Conceito
• Classes
• Objetos
• Métodos
Atributos
•
8
9. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Orientação a Objetos
• Modificadores de Acesso
– Public
– Private
– Protected
• Palavra-Chave 'final'
9
10. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Orientação a Objetos
• Herança
• Encapsulamento
– getXXX();
– setXXX();
10
11. 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
11
12. 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
12
13. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Frameworks MVC
• Akelos
• CakePHP
CodeIgniter
•
• PHP on Trax
• Prado
Symphony
•
Zend
•
• Outros ...
13
14. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Camadas
• Model
– Bean
– DAO
– Actions
• View
• Controller
14
15. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Model
• Bean
– Entidade
– Segurança
– Encapsulamento
– Vantagens
15
17. 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
17
23. 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
23
25. 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
25
27. 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
27
28. 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
28
29. 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
29
30. 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.
30
31. 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.
31
32. 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);
32
33. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Propriedades do XHR
• onreadystatechange
• readyState
status
•
• statusText
responseText
•
• responseXML
33
34. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
A Resposta
• XML
• HTML
• Script
• Texto
JSON
•
34
35. Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Bibliotecas JavaScript
• jQuery
• MooTools
• Prototype
• Dojo
Rico
•
extJS
•
35