SlideShare a Scribd company logo
1 of 38
Download to read offline
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
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




                              Roteiro
    • Web 2.0
    • Orientação a Objetos
    • MVC
           Vantagens
       –
           Frameworks
       –
           Camadas
       –
       –   Estrutura de Diretórios
           Fluxo da Aplicação
       –
    • AJAX
       – XMLHttpRequest

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




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


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




           Orientação a Objetos
     • Herança
     • Encapsulamento
       – getXXX();
       – setXXX();




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




               Frameworks MVC
     •   Akelos
     •   CakePHP
         CodeIgniter
     •
     •   PHP on Trax
     •   Prado
         Symphony
     •
         Zend
     •
     •   Outros ...
13
Desenvolvimento em três camadas com PHP 5, MVC e AJAX




                           Camadas
     • Model
       – Bean
       – DAO
       – Actions
     • View
     • Controller


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




                         Model
     • Bean
       – Entidade
       – Segurança
       – Encapsulamento
       – Vantagens




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




     Bean – Exemplo




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



      DAO – Exemplo




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




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




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




     Action – Exemplo




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




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




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




      View – Exemplo




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




     Controller - Exemplo




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




     Fluxo da aplicação MVC




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




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

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




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


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




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

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




     Agradecimentos




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




          Perguntas?

             Almir Neto
        almirneto@gmail.com

           Otávio Calaça
        otaviocx@gmail.com


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




                        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
38

More Related Content

What's hot

Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
Iorgama Porcely
 
01 introdução à algebra relacional
01   introdução à algebra relacional01   introdução à algebra relacional
01 introdução à algebra relacional
charlesoliveira13
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
alinebicudo
 

What's hot (20)

BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra Relacional
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Resumo Itil Foundation Portugues
Resumo Itil Foundation PortuguesResumo Itil Foundation Portugues
Resumo Itil Foundation Portugues
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbcZabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
01 introdução à algebra relacional
01   introdução à algebra relacional01   introdução à algebra relacional
01 introdução à algebra relacional
 
Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)
 
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de InformaçãoApresentação da disciplina Topicos Especiais em Sistemas de Informação
Apresentação da disciplina Topicos Especiais em Sistemas de Informação
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
 

Viewers also liked

PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
Sérgio Souza Costa
 

Viewers also liked (20)

PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
Php 05 Mvc
Php 05 MvcPhp 05 Mvc
Php 05 Mvc
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 
Php 06 Crud Mvc
Php 06 Crud MvcPhp 06 Crud Mvc
Php 06 Crud Mvc
 
Entendendo os microframeworks em PHP
Entendendo os microframeworks em PHPEntendendo os microframeworks em PHP
Entendendo os microframeworks em PHP
 
Desenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHPDesenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHP
 
Usando a programação web para mobile com Twitter Bootstrap
Usando a programação web para mobile com Twitter BootstrapUsando a programação web para mobile com Twitter Bootstrap
Usando a programação web para mobile com Twitter Bootstrap
 
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
 
Mini-Curso sobre Bootstrap 3
Mini-Curso sobre Bootstrap 3Mini-Curso sobre Bootstrap 3
Mini-Curso sobre Bootstrap 3
 
Software livre para leigos - VII SIECOMP
Software livre para leigos - VII SIECOMPSoftware livre para leigos - VII SIECOMP
Software livre para leigos - VII SIECOMP
 
8159540 Tutorial De Ajax
8159540 Tutorial De Ajax8159540 Tutorial De Ajax
8159540 Tutorial De Ajax
 
Revista programar 2
Revista programar 2Revista programar 2
Revista programar 2
 
PHP e Ajax com XAJAX
PHP e Ajax com XAJAXPHP e Ajax com XAJAX
PHP e Ajax com XAJAX
 
introdução a ajax
introdução a ajaxintrodução a ajax
introdução a ajax
 
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLDesenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!
 
Digital first: gli appuntamenti sulla PA digitale a FORUM PA 2016
Digital first: gli appuntamenti sulla PA digitale a FORUM PA 2016Digital first: gli appuntamenti sulla PA digitale a FORUM PA 2016
Digital first: gli appuntamenti sulla PA digitale a FORUM PA 2016
 

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

CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
elliando dias
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4
Rodrigo Kono
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
elliando dias
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
elliando dias
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
Sérgio Vilar
 

Similar to Desenvolvimento em Três Camadas com PHP, MVC e Ajax (20)

Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net Mvc
 
Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Criando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftCriando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias Microsoft
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core MVC
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 
AJAX
AJAXAJAX
AJAX
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com Django
 
Web2.0 e Ajax
Web2.0 e AjaxWeb2.0 e Ajax
Web2.0 e Ajax
 
Interop Day 2011 - Construindo aplicações web com WebMatrix
Interop Day 2011 - Construindo aplicações web com WebMatrixInterop Day 2011 - Construindo aplicações web com WebMatrix
Interop Day 2011 - Construindo aplicações web com WebMatrix
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 

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
  • 16. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Bean – Exemplo 16
  • 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
  • 18. Desenvolvimento em três camadas com PHP 5, MVC e AJAX DAO – Exemplo 18
  • 19. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Model • Action – Regras do Negócio – Integra Bean, DAO e Views 19
  • 20. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Action – Exemplo 20
  • 21. Desenvolvimento em três camadas com PHP 5, MVC e AJAX View • Ajax • Templates • Web Standards • GTK (desktop) 21
  • 22. Desenvolvimento em três camadas com PHP 5, MVC e AJAX View – Exemplo 22
  • 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
  • 24. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Controller - Exemplo 24
  • 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
  • 26. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Fluxo da aplicação MVC 26
  • 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
  • 36. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Agradecimentos 36
  • 37. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Perguntas? Almir Neto almirneto@gmail.com Otávio Calaça otaviocx@gmail.com 37
  • 38. Desenvolvimento em três camadas com PHP 5, MVC e AJAX 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 38