SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Componentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em AndroidComponentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em Androidwelingtonms
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks jsandreluizlc
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareÁlvaro Farias Pinheiro
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3 ArezooKmn
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 
Comunicação Cliente/Servidor - HTTP
Comunicação Cliente/Servidor - HTTPComunicação Cliente/Servidor - HTTP
Comunicação Cliente/Servidor - HTTPWillian Watanabe
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js ExpressEyal Vardi
 
Estrutura de Dados em Algoritmo C
Estrutura de Dados em Algoritmo CEstrutura de Dados em Algoritmo C
Estrutura de Dados em Algoritmo CVinícius Moraes
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1Bruno Catão
 

Was ist angesagt? (20)

Componentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em AndroidComponentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em Android
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks js
 
Integridade De Dados
Integridade De DadosIntegridade De Dados
Integridade De Dados
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Programação web e o front-end
Programação web e o front-endProgramação web e o front-end
Programação web e o front-end
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
 
Front End x Back End
Front End x Back EndFront End x Back End
Front End x Back End
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Revisao php
Revisao phpRevisao php
Revisao php
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
Comunicação Cliente/Servidor - HTTP
Comunicação Cliente/Servidor - HTTPComunicação Cliente/Servidor - HTTP
Comunicação Cliente/Servidor - HTTP
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
Estrutura de Dados em Algoritmo C
Estrutura de Dados em Algoritmo CEstrutura de Dados em Algoritmo C
Estrutura de Dados em Algoritmo C
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1
 
POO - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 

Andere mochten auch

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 AJAXOtávio Calaça Xavier
 
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çadoLuiz Junior
 
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 PerformanceFelipe Ribeiro
 
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 JSONMarcio Junior Vieira
 
Entendendo os microframeworks em PHP
Entendendo os microframeworks em PHPEntendendo os microframeworks em PHP
Entendendo os microframeworks em PHPfelipe bastosweb
 
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 PHPElton Minetto
 
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 BootstrapFlavio Souza
 
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 ...Cristofer Sousa
 
Mini-Curso sobre Bootstrap 3
Mini-Curso sobre Bootstrap 3Mini-Curso sobre Bootstrap 3
Mini-Curso sobre Bootstrap 3Diego Doná
 
Software livre para leigos - VII SIECOMP
Software livre para leigos - VII SIECOMPSoftware livre para leigos - VII SIECOMP
Software livre para leigos - VII SIECOMPAnderson Ferraz
 
PHP e Ajax com XAJAX
PHP e Ajax com XAJAXPHP e Ajax com XAJAX
PHP e Ajax com XAJAXRafael Dohms
 
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 / MYSQLRogerio de Moraes
 
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!Gustavo Neves
 
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 2016FPA
 
MVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web ApplicationsMVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web ApplicationsVforce Infotech
 

Andere mochten auch (20)

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
 
MVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web ApplicationsMVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web Applications
 

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

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 AJAXManuel Lemos
 
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 boloelliando dias
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Rodrigo Kono
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net MvcGiovanni Bassi
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveiselliando dias
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
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 MicrosoftFabrício Lopes Sanchez
 
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...André Curvello
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoIgor Sobreira
 
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 WebMatrixFabrício Lopes Sanchez
 
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 2014Giovanni Bassi
 

Ähnlich wie 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