SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler 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
●



    http://www.gophp.com.br
●
Desenvolvimento em três camadas com PHP 5, MVC e AJAX




    Nova forma de pensar?
      Nova tecnologia?
         Revolução?



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




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




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




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



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




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

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




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


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'


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




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




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

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




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




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


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




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




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




     Bean – Exemplo




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



      DAO – Exemplo




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




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




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




     Action – Exemplo




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




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




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




      View – Exemplo




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


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




     Controller - Exemplo




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


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




     Fluxo da aplicação MVC




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




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


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




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.



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.


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




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




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

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




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


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




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

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




     Agradecimentos




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


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
39

Mais conteúdo relacionado

Mais procurados

Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
Curso ASP.NET MVC 3 - Vinicius Quaiato
Curso ASP.NET MVC 3 - Vinicius QuaiatoCurso ASP.NET MVC 3 - Vinicius Quaiato
Curso ASP.NET MVC 3 - Vinicius QuaiatoVinicius Quaiato
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCguest489a65e
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sériosaspi2
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoIgor Sobreira
 
I BootCamp SMO - RubyOnRails
I BootCamp SMO - RubyOnRailsI BootCamp SMO - RubyOnRails
I BootCamp SMO - RubyOnRailsMarcelo Júnior
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXjesuinoPower
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONIFábio Delboni
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScriptThiago Poiani
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com JavajesuinoPower
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSRodrigo Branas
 

Mais procurados (20)

Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Curso ASP.NET MVC 3 - Vinicius Quaiato
Curso ASP.NET MVC 3 - Vinicius QuaiatoCurso ASP.NET MVC 3 - Vinicius Quaiato
Curso ASP.NET MVC 3 - Vinicius Quaiato
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sério
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com Django
 
I BootCamp SMO - RubyOnRails
I BootCamp SMO - RubyOnRailsI BootCamp SMO - RubyOnRails
I BootCamp SMO - RubyOnRails
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFX
 
AJAX
AJAXAJAX
AJAX
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com Java
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
 

Destaque

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 AjaxAlmir Neto
 
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
 
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael JaquesPHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael JaquesRafael Jaques
 
Apostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXApostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXDaniel Brandão
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Phpsofteam
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxOtávio Calaça Xavier
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 
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 e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zeroFred Ramos
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX Sérgio Souza Costa
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraClavis Segurança da Informação
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionOtávio Calaça Xavier
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeOtávio Calaça Xavier
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSamyr Abdo
 

Destaque (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
 
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!
 
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael JaquesPHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
 
Apostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXApostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAX
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Php
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com Ajax
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
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 e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zero
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and Induction
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizade
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr Abdo
 

Semelhante a Desenvolvimento em três camadas com PHP 5, 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 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
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveiselliando dias
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando 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
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançadoTargettrust
 
T@rget trust microsoft asp.net mvc
T@rget trust   microsoft asp.net mvcT@rget trust   microsoft asp.net mvc
T@rget trust microsoft asp.net mvcTargettrust
 
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
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
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
 
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
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Tecnologias Web 2.0
Tecnologias Web 2.0 Tecnologias Web 2.0
Tecnologias Web 2.0 Duarte Nunes
 

Semelhante a Desenvolvimento em três camadas com PHP 5, MVC e AJAX (20)

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 Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
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
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
T@rget trust microsoft asp.net mvc
T@rget trust   microsoft asp.net mvcT@rget trust   microsoft asp.net mvc
T@rget trust microsoft asp.net mvc
 
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
 
Web2.0 e Ajax
Web2.0 e AjaxWeb2.0 e Ajax
Web2.0 e Ajax
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
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...
 
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
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Tecnologias Web 2.0
Tecnologias Web 2.0 Tecnologias Web 2.0
Tecnologias Web 2.0
 

Mais de Otávio Calaça Xavier

Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsOtávio Calaça Xavier
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLOtávio Calaça Xavier
 
Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksOtávio Calaça Xavier
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPOtávio Calaça Xavier
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a DecisãoOtávio Calaça Xavier
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPOtávio Calaça Xavier
 
Classe V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleClasse V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleOtávio Calaça Xavier
 

Mais de Otávio Calaça Xavier (13)

Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.js
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQL
 
Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social Networks
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHP
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
PHP: Atualidade e Tendências
PHP: Atualidade e TendênciasPHP: Atualidade e Tendências
PHP: Atualidade e Tendências
 
Introdução à Google Maps API
Introdução à Google Maps APIIntrodução à Google Maps API
Introdução à Google Maps API
 
Padrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVCPadrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVC
 
Redes Neurais com PHP
Redes Neurais com PHPRedes Neurais com PHP
Redes Neurais com PHP
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHP
 
Classe V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleClasse V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no Moodle
 

Desenvolvimento em três camadas com PHP 5, 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 ● http://www.gophp.com.br ●
  • 3. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Nova forma de pensar? Nova tecnologia? Revolução? 3
  • 4. Desenvolvimento em três camadas com PHP 5, MVC e AJAX POOMAX • PHP • Orientação a Objetos MVC • • AJAX 4
  • 5. 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 5
  • 6. 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 6
  • 7. 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 7
  • 8. 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 ... 8
  • 9. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Orientação a Objetos • Conceito • Classes • Objetos • Métodos Atributos • 9
  • 10. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Orientação a Objetos • Modificadores de Acesso – Public – Private – Protected • Palavra-Chave 'final' 10
  • 11. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Orientação a Objetos • Herança • Encapsulamento – getXXX(); – setXXX(); 11
  • 12. 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 12
  • 13. 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 13
  • 14. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Frameworks MVC • Akelos • CakePHP CodeIgniter • • PHP on Trax • Prado Symphony • Zend • • Outros ... 14
  • 15. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Camadas • Model – Bean – DAO – Actions • View • Controller 15
  • 16. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Model • Bean – Entidade – Segurança – Encapsulamento – Vantagens 16
  • 17. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Bean – Exemplo 17
  • 18. 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 18
  • 19. Desenvolvimento em três camadas com PHP 5, MVC e AJAX DAO – Exemplo 19
  • 20. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Model • Action – Regras do Negócio – Integra Bean, DAO e Views 20
  • 21. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Action – Exemplo 21
  • 22. Desenvolvimento em três camadas com PHP 5, MVC e AJAX View • Ajax • Templates • Web Standards • GTK (desktop) 22
  • 23. Desenvolvimento em três camadas com PHP 5, MVC e AJAX View – Exemplo 23
  • 24. 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 24
  • 25. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Controller - Exemplo 25
  • 26. 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 26
  • 27. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Fluxo da aplicação MVC 27
  • 28. 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 28
  • 29. 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 29
  • 30. 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 30
  • 31. 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. 31
  • 32. 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. 32
  • 33. 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); 33
  • 34. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Propriedades do XHR • onreadystatechange • readyState status • • statusText responseText • • responseXML 34
  • 35. Desenvolvimento em três camadas com PHP 5, MVC e AJAX A Resposta • XML • HTML • Script • Texto JSON • 35
  • 36. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Bibliotecas JavaScript • jQuery • MooTools • Prototype • Dojo Rico • extJS • 36
  • 37. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Agradecimentos 37
  • 38. Desenvolvimento em três camadas com PHP 5, MVC e AJAX Perguntas? Almir Neto almirneto@gmail.com Otávio Calaça otaviocx@gmail.com 38
  • 39. 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 39