Desenvolvimento em Três Camadas com PHP, MVC e Ajax

38
Desenvolvimento em três camadas com PHP 5, MVC e AJAX Almir Neto – [email protected] Otá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

description

Slides used at CONAPHP 2008. The main subject is software development with PHP, MVC and AJAX

Transcript of Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Page 1: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 2: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 3: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 4: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 5: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 6: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 7: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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 ...

Page 8: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

8

Orientação a Objetos• Conceito• Classes• Objetos• Métodos• Atributos

Page 9: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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'

Page 10: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

10

Orientação a Objetos• Herança • Encapsulamento

– getXXX();– setXXX();

Page 11: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 12: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 13: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

13

Frameworks MVC • Akelos• CakePHP• CodeIgniter• PHP on Trax• Prado• Symphony• Zend• Outros ...

Page 14: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

14

Camadas• Model

– Bean– DAO– Actions

• View • Controller

Page 15: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

15

Model• Bean

– Entidade– Segurança– Encapsulamento– Vantagens

Page 16: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

16

Bean – Exemplo

Page 17: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 18: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

18

DAO – Exemplo

Page 19: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

19

Model• Action

– Regras do Negócio– Integra Bean, DAO e Views

Page 20: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

20

Action – Exemplo

Page 21: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

21

View• Ajax• Templates • Web Standards• GTK (desktop)

Page 22: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

22

View – Exemplo

Page 23: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 24: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

24

Controller - Exemplo

Page 25: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 26: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

26

Fluxo da aplicação MVC

Page 27: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 28: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 29: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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

Page 30: Desenvolvimento em Três Camadas com PHP, MVC e 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.

Page 31: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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.

Page 32: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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);

Page 33: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

33

Propriedades do XHR• onreadystatechange• readyState• status • statusText• responseText • responseXML

Page 34: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

34

A Resposta• XML• HTML• Script• Texto• JSON

Page 35: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

35

Bibliotecas JavaScript• jQuery• MooTools• Prototype• Dojo• Rico• extJS

Page 36: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

36

Agradecimentos

Page 37: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

37

Perguntas?

Almir [email protected]

Otávio Calaç[email protected]

Page 38: Desenvolvimento em Três Camadas com PHP, MVC e Ajax

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