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           Página          Aplicação
                         WEB               da WEB            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?

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
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCMichael Costa
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAndré Luiz Forchesatto
 
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
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)Giovanni Bassi
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 
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
 
TDC 2008 JBoss Seam
TDC 2008 JBoss SeamTDC 2008 JBoss Seam
TDC 2008 JBoss SeamDr. Spock
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...Emmanuel Neri
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Fernando Gonçalves
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overviewdtelaroli
 

Was ist angesagt? (20)

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
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
 
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
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
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
 
Php01
Php01Php01
Php01
 
TDC 2008 JBoss Seam
TDC 2008 JBoss SeamTDC 2008 JBoss Seam
TDC 2008 JBoss Seam
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overview
 

Andere mochten auch

Plano Anual - Talentos à Solta
Plano Anual - Talentos à SoltaPlano Anual - Talentos à Solta
Plano Anual - Talentos à SoltaAlmindo Fernandes
 
Proyectotecnico
ProyectotecnicoProyectotecnico
Proyectotecnicoaaabierta
 
San Francisco Presentation/Handouts
San Francisco Presentation/HandoutsSan Francisco Presentation/Handouts
San Francisco Presentation/HandoutsJulie Lee
 
Access versus dedicated panel: ESOMAR panel conference Dublin 2008
Access versus dedicated panel: ESOMAR panel conference Dublin 2008Access versus dedicated panel: ESOMAR panel conference Dublin 2008
Access versus dedicated panel: ESOMAR panel conference Dublin 2008Kristof De Wulf
 
Rethinking Subscription Databases
Rethinking Subscription DatabasesRethinking Subscription Databases
Rethinking Subscription Databaseshutch tibbetts
 
Social Media 101
Social Media 101Social Media 101
Social Media 101J. Gorzka
 
Sundhedstjek & Motiverende samtale
Sundhedstjek & Motiverende samtaleSundhedstjek & Motiverende samtale
Sundhedstjek & Motiverende samtaleOleVictor
 
The Impact of Social Technologies on the Enterprise
The Impact of Social Technologies on the EnterpriseThe Impact of Social Technologies on the Enterprise
The Impact of Social Technologies on the EnterpriseJonathan Yarmis
 
Psych Perspectives 2007
Psych Perspectives 2007Psych Perspectives 2007
Psych Perspectives 2007israelgreg
 
Global Instance Solution for TV Globo - Brazil
Global Instance Solution for TV Globo - BrazilGlobal Instance Solution for TV Globo - Brazil
Global Instance Solution for TV Globo - BrazilAlexandre Lukine
 
Email Marketing. Encuentra Y Fideliza Tus Clientes
Email Marketing. Encuentra Y Fideliza Tus ClientesEmail Marketing. Encuentra Y Fideliza Tus Clientes
Email Marketing. Encuentra Y Fideliza Tus Clientesguestcd64f
 

Andere mochten auch (15)

Chinese Take Away
Chinese Take AwayChinese Take Away
Chinese Take Away
 
Plano Anual - Talentos à Solta
Plano Anual - Talentos à SoltaPlano Anual - Talentos à Solta
Plano Anual - Talentos à Solta
 
FSE 2008
FSE 2008FSE 2008
FSE 2008
 
Telemobility Forum 08
Telemobility Forum 08Telemobility Forum 08
Telemobility Forum 08
 
Proyectotecnico
ProyectotecnicoProyectotecnico
Proyectotecnico
 
San Francisco Presentation/Handouts
San Francisco Presentation/HandoutsSan Francisco Presentation/Handouts
San Francisco Presentation/Handouts
 
Target Analysis
Target AnalysisTarget Analysis
Target Analysis
 
Access versus dedicated panel: ESOMAR panel conference Dublin 2008
Access versus dedicated panel: ESOMAR panel conference Dublin 2008Access versus dedicated panel: ESOMAR panel conference Dublin 2008
Access versus dedicated panel: ESOMAR panel conference Dublin 2008
 
Rethinking Subscription Databases
Rethinking Subscription DatabasesRethinking Subscription Databases
Rethinking Subscription Databases
 
Social Media 101
Social Media 101Social Media 101
Social Media 101
 
Sundhedstjek & Motiverende samtale
Sundhedstjek & Motiverende samtaleSundhedstjek & Motiverende samtale
Sundhedstjek & Motiverende samtale
 
The Impact of Social Technologies on the Enterprise
The Impact of Social Technologies on the EnterpriseThe Impact of Social Technologies on the Enterprise
The Impact of Social Technologies on the Enterprise
 
Psych Perspectives 2007
Psych Perspectives 2007Psych Perspectives 2007
Psych Perspectives 2007
 
Global Instance Solution for TV Globo - Brazil
Global Instance Solution for TV Globo - BrazilGlobal Instance Solution for TV Globo - Brazil
Global Instance Solution for TV Globo - Brazil
 
Email Marketing. Encuentra Y Fideliza Tus Clientes
Email Marketing. Encuentra Y Fideliza Tus ClientesEmail Marketing. Encuentra Y Fideliza Tus Clientes
Email Marketing. Encuentra Y Fideliza Tus Clientes
 

Ähnlich wie Desenvolvimento trÊas camadas PHP 5 MVC 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 AjaxAlmir Neto
 
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
 
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
 
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é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
 
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
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 
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
 

Ähnlich wie Desenvolvimento trÊas camadas PHP 5 MVC 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
 
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
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core 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
 
AJAX
AJAXAJAX
AJAX
 
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
 
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
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 
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
 
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
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
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
 

Desenvolvimento trÊas camadas PHP 5 MVC 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 Página Aplicação WEB da WEB 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