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

Post on 06-Dec-2014

8.237 views 0 download

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

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

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

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

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

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

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

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

8

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

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'

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

10

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

– getXXX();– setXXX();

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

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

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

13

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

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

14

Camadas• Model

– Bean– DAO– Actions

• View • Controller

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

15

Model• Bean

– Entidade– Segurança– Encapsulamento– Vantagens

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

16

Bean – Exemplo

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

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

18

DAO – Exemplo

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

19

Model• Action

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

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

20

Action – Exemplo

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

21

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

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

22

View – Exemplo

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

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

24

Controller - Exemplo

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

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

26

Fluxo da aplicação MVC

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

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

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

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.

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.

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

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

33

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

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

34

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

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

35

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

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

36

Agradecimentos

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

37

Perguntas?

Almir Netoalmirneto@gmail.com

Otávio Calaçaotaviocx@gmail.com

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