desenvolvimento em três camadas com php 5, mvc e ajax

39
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

Upload: otavio-calaca-xavier

Post on 06-Jun-2015

23.307 views

Category:

Technology


7 download

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.

TRANSCRIPT

Page 1: Desenvolvimento em três camadas com PHP 5, 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 5, 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● http://www.gophp.com.br

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

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

3

Nova forma de pensar?Nova tecnologia?

Revolução?

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

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

4

POOMAX• PHP• Orientação a Objetos• MVC• AJAX

Page 5: Desenvolvimento em três camadas com PHP 5, MVC e 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

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

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

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

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

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

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

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

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

9

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

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

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'

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

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

11

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

– getXXX();– setXXX();

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

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

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

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

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

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

14

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

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

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

15

Camadas• Model

– Bean– DAO– Actions

• View • Controller

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

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

16

Model• Bean

– Entidade– Segurança– Encapsulamento– Vantagens

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

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

17

Bean – Exemplo

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

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

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

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

19

DAO – Exemplo

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

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

20

Model• Action

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

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

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

21

Action – Exemplo

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

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

22

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

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

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

23

View – Exemplo

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

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

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

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

25

Controller - Exemplo

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

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

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

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

27

Fluxo da aplicação MVC

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

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

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

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

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

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

Page 31: Desenvolvimento em três camadas com PHP 5, MVC e 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.

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

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.

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

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

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

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

34

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

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

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

35

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

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

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

36

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

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

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

37

Agradecimentos

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

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

38

Perguntas?

Almir [email protected]

Otávio Calaç[email protected]

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

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