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

Post on 06-Jun-2015

23.307 Views

Category:

Technology

7 Downloads

Preview:

Click to see full reader

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

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● http://www.gophp.com.br

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

3

Nova forma de pensar?Nova tecnologia?

Revolução?

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

4

POOMAX• PHP• Orientação a Objetos• MVC• 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

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

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

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

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

9

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

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'

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

11

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

– getXXX();– setXXX();

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

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

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

14

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

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

15

Camadas• Model

– Bean– DAO– Actions

• View • Controller

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

16

Model• Bean

– Entidade– Segurança– Encapsulamento– Vantagens

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

17

Bean – Exemplo

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

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

19

DAO – Exemplo

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

20

Model• Action

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

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

21

Action – Exemplo

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

22

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

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

23

View – Exemplo

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

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

25

Controller - Exemplo

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

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

27

Fluxo da aplicação MVC

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

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

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

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.

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.

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

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

34

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

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

35

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

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

36

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

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

37

Agradecimentos

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

38

Perguntas?

Almir Netoalmirneto@gmail.com

Otávio Calaçaotaviocx@gmail.com

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

top related