SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
Visão
                                                                      Controlador
                                                                           Modelo




         Aplicando MVC em PHP com Zend Framework




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Quem sou eu?




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
agenda
         ●     Arquitetura geral do Zend Framework
         ●     MVC no Zend Framework
         ●     Camada de Controle
         ●     Camada de Modelo
         ●     Camada de Visão
         ●     Exemplo de como estender o framework




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Não vamos discutir PHP...




         ...porque um terço das aplicações do mundo já o
                             utiliza...
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
E aplicações de negócio baseadas
              em PHP tendem a crescer...
                                                               Part-Time        Independent          Corporate
                                                               Developers       Software
                                                               And Hobbyists    Vendors              IT
                                                                                                     Developers
                      Programmers (Millions)




                                               2006   2007         2008        2009           2010     2011       2012   2013
              Source: Gartner (December 2007)




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Arquitetura geral do Zend Framework




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Arquitetura geral do Zend Framework


                                                                                              Data
                                                                                             Database

                               MVC                                                             XML
                             Controller                                                       Search
                                 View                                                          PDF
                                                                    Core
                                Security
                                                                   Cache                                  i18n
                                                                              Web Services
                                      Acl                          Config                      Locale            Date
                                    Auth                                         Feed
                                                                     Log                      Translate      Calendar
                                    Filter                                       Client
                                                                   Registry                   Measure        Currency
                                 Validate                                        Server
                                                                   Session
                                                                                Services
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.




             Arquitetura geral do Zend Framework




                                                                  Fonte: blog.niot.net
                              Transformers é uma marca registrada da Hasbro (http://www.hasbro.com). Todos os direitos reservados.
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.




             Arquitetura geral do Zend Framework




                       Fonte: http://www.nipoheroes.hpg.ig.com.br/SSentai/Changeman/ArmasChangeman/ArmasChangeman.html
                           Transformers é uma marca registrada da Hasbro (http://www.hasbro.com). Todos os direitos reservados.
Arquitetura geral do Zend Framework



                                         Ou seja, Zend Framework é:

       ► Uma biblioteca de componentes.
       (fracamente acoplados).
       ► Um framework.
       (extensível e flexível).



www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Arquitetura geral do Zend Framework

       Biblioteca de
       componentes
       fracamente
       acoplados?
       O que isso significa?
       Que outros frameworks
       podem usar
       componentes do Zend.



www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Arquitetura geral do Zend Framework

       Framework extensível
       e flexível?
       O que isso significa?
       Que Zend Framework
       pode usar outros
       frameworks e
       componentes COMO
       SE FOSSEM
       REALMENTE PARTE
       DELE.

www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Arquitetura geral do Zend Framework

       Mais do que isso!
       A arquitetura do Zend
       Framework aproveita
       o modelo de negócio
       de software livre e
       evita forks!




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Arquitetura geral do Zend Framework
                 METODOLOGIA “NÃO QUERO PAGAR E TENHO PRAZO PRA ENTREGAR”
   1. TENHO UM PROBLEMA!                                            2. USO A COMUNIDADE     3. NÃO POSSO ESPERAR!




                                                                                            6. E SE TIVER QUE FAZER
                                                                   5. RESOLVI O PROBLEMA!   MANUTENÇÃO?
  4. FAÇO UM FORK (OU POG)                                         (PELO MENOS AGORA...)




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Arquitetura geral do Zend Framework
                                                      METODOLOGIA ZEND FRAMEWORK
   1. TENHO UM PROBLEMA!                                           2. USO A COMUNIDADE   3. NÃO POSSO ESPERAR!




                                               6. O QUE FOI PRA
                         5. RESOLVI O PROBLEMA COMUNIDADE SERÁ
  4. ESTENDO, USANDO     DIREITO!              TESTADO, APERFEIÇOADO E
  A INTERFACE PADRÃO,                          PODEREI UTILIZAR SEM
  E SUBMETO PRA COMUNIDADE                     CAUSAR IMPACTO NA
                                               APLICAÇÃO!




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Arquitetura geral do Zend Framework
       Namespaces

       Os     nomes   das   classes  possuem   um
       relacionamento de 1 para 1 com o sistema de
       arquivos:

                         Zend_Db_Table => Zend/Db/Table.php
            $al = Zend_Loader_Autoloader::getInstance();
            $al->registerNamespace('Huguinho_');
            $al->registerNamespace(array('Zezinho_',
            'Luisinho_'));



www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                                                  APLICAÇÕES SÃO COMO CEBOLAS...




  Shrek é uma marca registrada da Dreamworks (http://www.dreamworksanimation.com). Todos os direitos reservados.


www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework




                                       Fonte: http://blog.fedecarg.com/2008/07/28/zend-framework-architecture/




                      Homem-Aranha é uma marca registrada da Marvel (http://www.marvel.com). Todos os direitos reservados.

www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.                     Fonte: http://www.lojadeanimes.com.br
MVC no Zend Framework



                                                                   C       v
   HTTP                      Controlador
   REQUEST
                               Frontal




                                                                       M
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
              O Controlador Frontal exige reescrita de URL.

                      A aplicação interpreta a requisição, não o
                                       servidor.

                        SetEnv APPLICATION_ENV development

                        RewriteEngine On
                        RewriteRule ^.*$ public/index.php




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework



                      As rotas-padrão do Zend framework são:

                     aplicação/controlador/ação/chave1/valor1

        aplicação/módulo/controlador/ação/chave1/valor1




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                 Mas o framework permite a criação de rotas
                              customizadas.
                              $router = $ctrl->getRouter();
                              $router->addRoute(
                                  'user',
                                  new
                        Zend_Controller_Router_Route('user/:use
                        rname',

                                  array('controller' => 'user',

                                                      'action' => 'info'))
                                            );


www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework

              Um projeto MVC pode ser criado rapidamente
                           com Zend Tool.

          Ele pode ser executado na linha de comando ou
          integrado com IDEs como Eclipse e Netbeans.




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework


                                # Unix:
                                % zf.sh create project quickstart

                                # DOS/Windows:
                                C:> zf.bat create project quickstart




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no                                                 quickstart
                                                                   |-- application
              Zend                                                 |
                                                                   |
                                                                       |-- Bootstrap.php
                                                                       |-- configs

           Framework                                               |
                                                                   |
                                                                       |   `-- application.ini
                                                                       |-- controllers
                                                                   |   |   |-- ErrorController.php
                                                                   |   |   `-- IndexController.php
                                                                   |   |-- models
                                                                   |   `-- views
                                                                   |       |-- helpers
                                                                   |       `-- scripts
               Estrutura                                           |
                                                                   |
                                                                               |-- error
                                                                               |   `-- error.phtml
            do projeto MVC                                         |           `-- index
                                                                   |               `-- index.phtml
           Zend Framework                                          |-- library
             convencional                                          |-- public
                                                                   |   `-- index.php
                                                                   `-- tests
                                                                       |-- application
                                                                       |   `-- bootstrap.php
                                                                       |-- library
                                                                       |   `-- bootstrap.php
                                                                       `-- phpunit.xml

                                                                   14 directories, 10 files
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                                                Inicialização da aplicação

        <?php

        class Bootstrap
            extends Zend_Application_Bootstrap_Bootstrap
        {
        }




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                                              Configuração da aplicação
              [production]
              phpSettings.display_startup_errors = 0
              phpSettings.display_errors = 0
              includePaths.library = APPLICATION_PATH "/../library"
              bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
              bootstrap.class = "Bootstrap"
              resources.frontController.controllerDirectory =
                  APPLICATION_PATH "/controllers"

              [staging : production]

              [testing : production]
              phpSettings.display_startup_errors = 1
                                                                     Controlador
              phpSettings.display_errors = 1                         Frontal
              [development : production]
              phpSettings.display_startup_errors = 1
              phpSettings.display_errors = 1
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                                      Carregamento da Configuração
       /** Zend_Application */
       require_once 'Zend/Application.php';

       // Create application, bootstrap, and run
       $application = new Zend_Application(
           APPLICATION_ENV,
           APPLICATION_PATH . '/configs/application.ini'
       );
       $application->bootstrap()
                   ->run();




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                                                                     O Controle




                                                           Fonte: http://cesarpallares.files.wordpress.com/2009/01/agente-86.jpg




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                     Padrão de Projeto: Controlador de página
           <?php

           class IndexController
               extends Zend_Controller_Action
           {
               public function init()
               {
                   /* Initialize action controller here */
               }

                        public function indexAction()
                        {
                            // action body
                        }
           }
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                                                        Controlador de erros
  class ErrorController extends Zend_Controller_Action
  {
      public function errorAction()
      {
          $errors = $this->_getParam('error_handler');
          switch ($errors->type) {
              case 'EXCEPTION_NO_CONTROLLER':
              case 'EXCEPTION_NO_ACTION':
                  // 404 error -- controller or action not found
                  $this->getResponse()->setHttpResponseCode(404);
                  $this->view->message = 'Page not found';
                  break;
              default:
                  // application error
                  $this->getResponse()->setHttpResponseCode(500);
                  $this->view->message = 'Application error';
                  break;
          }
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                                          Fluxo da requisição e plugins




                                                                          C

www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
                                                                   O Modelo




                 Cláudia Schiffer                                    Naomi Campbell   Riyo Mori




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework
Não tem Zend_Model...

Mas tem:
►Zend_Db_Table
►Zend_Feed
►Zend_Rest
►Zend_Service
►Zend_Soap
►Zend_XmlRpc
►Zend_Search_Lucene
...
MVC no Zend Framework
Zend_Db_Table

►Mapeia tabelas relacionais para classes PHP.
►Define relacionamentos e restrições no modelo.
►Permite construir consultas orientadas a objeto
com Zend_Db_Table_Select.
►Não obriga a criação de classes PHP (>1.10),
pode criar modelos dinamicamente.
►Pode ser usado de dois modos:
  →Tenho saudade de SQL
  → Active Record
MVC no Zend Framework
                                                                            A Visão




                                                         Fonte: http://amigosdeoracao.files.wordpress.com/2009/07/olho_azul1.jpg




www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework

         Para a interface com o usuário, Zend Framework
          usa o padrão de projeto Vista em Duas Etapas.

                  1) Primeiro ele transforma dos dados
               provenientes do modelo, ou enviados pelo
             controlador, em uma apresentação lógica, sem
              qualquer formatação específica (Zend_View)

        2) Depois, ele converte essa apresentação lógica
          na formatação real necessária (Zend_Layout)

www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework

                   Um layout pode servir para várias páginas:

                CSS
                Javascript                                             Layout




                  Página 1                     Página 2            Página 3     Página 4   Página 5



                                             CONTEÚDO, NO CORPO DO DOCUMENTO
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
MVC no Zend Framework

           Zend_View permite reutilização de componente
                     de visão: view partials

                                                                   Visão Principal




                                               Partial 1               Partial 2         Partial 3



                                                     Partials podem ser reaproveitados
www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Exemplo de como estender o
                               framework

                                                             Projeto FGSL2ZF


       http://sourceforge.net/projects/fgslibraryphp

                                                               Tratado no livro:

                 Criando Aplicações PHP com Zend e Dojo


www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
Perguntas?




www.fgsl.eti.br
MUITO OBRIGADO!
Referências
●   Matthew Weier O'Phinney. Zend Framework Tutorial. ZendCon 2009.
●   Martin Fowler. Padrões de Arquitetura de Aplicações Corporativas. Bookman, 2006.
Mais informações
●   Zend Framework website http://framework.zend.com
●   Zend Developer Zone http://devzone.zend.com
●   ZFTutorials forum http://www.zftutorials.com
●   Blogs
    ●   Matthew Weier O'Phinney: http://weierophinney.net/matthew
    ●   Cal Evans: http://blog.calevans.com
    ●   Andries Seutens: http://andries.systray.be/blog
    ●   Rob Allen: http://akrabat.com
●   Zend Framework Brasil
    ●   http://www.zfbrasil.com
    ●   http://groups.google.com/group/zfbrasil
Créditos das imagens
●   Imagem do Pensador de Auguste Rodin:
    http://phabrycyulandia.blogspot.com/2010/06/pensamento-em-bronze.html
●   Imagem da nuvem: http://ointercessor.blogspot.com/2010/03/nuvem-de-deus.html
●   Posição romana “poupem o gladiador”:
    http://www.observadordaqualidade.com.br/o_que_eh_qualidade/o_que_%20eh_qualidade.gif
●   Cogumelo nuclear: http://naweb.files.wordpress.com/2008/04/fim.jpg
●   Relógio com homem como ponteiro:
    http://www.blogdosempreendedores.com.br/wp-content/uploads/2010/04/tempo.jpg
●   Tomada e plugue no novo padrão brasileiro:
    http://tecnocracia.com.br/wp-content/uploads/2007/07/tomadas_padrao3pinos.jpg
●   Menino vibrando de alegria:
    http://20anosdesolidao.blogspot.com/2009/10/alegria-alegria-eu-voltei-para-ninguem.html

Contenu connexe

En vedette

W. Kinney - Scale-Invariant Perturbations: is Inflation the only Way?
W. Kinney - Scale-Invariant Perturbations: is Inflation the only Way?W. Kinney - Scale-Invariant Perturbations: is Inflation the only Way?
W. Kinney - Scale-Invariant Perturbations: is Inflation the only Way?SEENET-MTP
 
NJ BLN/DiscoverAbility NJ Projects
NJ BLN/DiscoverAbility NJ ProjectsNJ BLN/DiscoverAbility NJ Projects
NJ BLN/DiscoverAbility NJ ProjectsDiscoverAbility NJ
 
diploma_transcript_[level_4]_[2]
diploma_transcript_[level_4]_[2]diploma_transcript_[level_4]_[2]
diploma_transcript_[level_4]_[2]Nayem Mahmud
 
Os vários tipos de líder
Os vários tipos de líderOs vários tipos de líder
Os vários tipos de lídercatherineee
 
Internet, belager van mijn privacy
Internet, belager van mijn privacyInternet, belager van mijn privacy
Internet, belager van mijn privacyGene Vangampelaere
 
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010Flávio Lisboa
 
Eyetracking presentatie - Charlotte van Dael
Eyetracking presentatie - Charlotte van DaelEyetracking presentatie - Charlotte van Dael
Eyetracking presentatie - Charlotte van DaelLECTRIC
 
english_language_certificate_-3
english_language_certificate_-3english_language_certificate_-3
english_language_certificate_-3Nayem Mahmud
 
Paraguay adentro margarita crosa
Paraguay adentro margarita crosaParaguay adentro margarita crosa
Paraguay adentro margarita crosaGabriela Martinez
 
Sara zapata villa
Sara zapata villaSara zapata villa
Sara zapata villasarizflaka
 
Gallery crap
Gallery crapGallery crap
Gallery crapbirdkyle
 
Pruebas de acceso a la Universidad oficiales de grado (2015)
Pruebas de acceso a la Universidad oficiales de grado (2015)Pruebas de acceso a la Universidad oficiales de grado (2015)
Pruebas de acceso a la Universidad oficiales de grado (2015)aba
 

En vedette (20)

ApresentaçãO1
ApresentaçãO1ApresentaçãO1
ApresentaçãO1
 
W. Kinney - Scale-Invariant Perturbations: is Inflation the only Way?
W. Kinney - Scale-Invariant Perturbations: is Inflation the only Way?W. Kinney - Scale-Invariant Perturbations: is Inflation the only Way?
W. Kinney - Scale-Invariant Perturbations: is Inflation the only Way?
 
Christy_BeckerJr-CPR Card
Christy_BeckerJr-CPR Card Christy_BeckerJr-CPR Card
Christy_BeckerJr-CPR Card
 
Seminário 17.06
Seminário 17.06Seminário 17.06
Seminário 17.06
 
Mezcla Promociones
Mezcla PromocionesMezcla Promociones
Mezcla Promociones
 
NJ BLN/DiscoverAbility NJ Projects
NJ BLN/DiscoverAbility NJ ProjectsNJ BLN/DiscoverAbility NJ Projects
NJ BLN/DiscoverAbility NJ Projects
 
Johana
JohanaJohana
Johana
 
Да бъдеш жена
Да бъдеш женаДа бъдеш жена
Да бъдеш жена
 
diploma_transcript_[level_4]_[2]
diploma_transcript_[level_4]_[2]diploma_transcript_[level_4]_[2]
diploma_transcript_[level_4]_[2]
 
Inbound marketing
Inbound marketingInbound marketing
Inbound marketing
 
Os vários tipos de líder
Os vários tipos de líderOs vários tipos de líder
Os vários tipos de líder
 
Internet, belager van mijn privacy
Internet, belager van mijn privacyInternet, belager van mijn privacy
Internet, belager van mijn privacy
 
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
 
Eyetracking presentatie - Charlotte van Dael
Eyetracking presentatie - Charlotte van DaelEyetracking presentatie - Charlotte van Dael
Eyetracking presentatie - Charlotte van Dael
 
english_language_certificate_-3
english_language_certificate_-3english_language_certificate_-3
english_language_certificate_-3
 
Paraguay adentro margarita crosa
Paraguay adentro margarita crosaParaguay adentro margarita crosa
Paraguay adentro margarita crosa
 
Тема 10
Тема 10Тема 10
Тема 10
 
Sara zapata villa
Sara zapata villaSara zapata villa
Sara zapata villa
 
Gallery crap
Gallery crapGallery crap
Gallery crap
 
Pruebas de acceso a la Universidad oficiales de grado (2015)
Pruebas de acceso a la Universidad oficiales de grado (2015)Pruebas de acceso a la Universidad oficiales de grado (2015)
Pruebas de acceso a la Universidad oficiales de grado (2015)
 

Similaire à Aplicando MVC com Zend Framework

Code Igniter & Zend Framework Uma UniãO De Sucesso
Code Igniter & Zend Framework   Uma UniãO De SucessoCode Igniter & Zend Framework   Uma UniãO De Sucesso
Code Igniter & Zend Framework Uma UniãO De SucessoJose Wilker
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoJose Wilker
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da ZendDomingos Teruel
 
Palestra Zend Framework CISL 2012 - ZF no Governo Federal
Palestra Zend Framework CISL 2012 - ZF no Governo FederalPalestra Zend Framework CISL 2012 - ZF no Governo Federal
Palestra Zend Framework CISL 2012 - ZF no Governo FederalFlávio Lisboa
 
O que é framework
O que é frameworkO que é framework
O que é frameworkfcdigital
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Emerson Saito
 
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
 
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDesenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDomingos Teruel
 
Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Flávio Lisboa
 
Demoiselle - Arquitetura
Demoiselle - ArquiteturaDemoiselle - Arquitetura
Demoiselle - ArquiteturaSerge Rehem
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop MagentoThiago Verly
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Desenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleDesenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleSerge Rehem
 
Infraestrutura como código Terraform aws openshift Ansible
Infraestrutura como código Terraform aws openshift AnsibleInfraestrutura como código Terraform aws openshift Ansible
Infraestrutura como código Terraform aws openshift AnsibleClaudemir de Almeida Rosa
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDomingos Teruel
 

Similaire à Aplicando MVC com Zend Framework (20)

Code Igniter & Zend Framework Uma UniãO De Sucesso
Code Igniter & Zend Framework   Uma UniãO De SucessoCode Igniter & Zend Framework   Uma UniãO De Sucesso
Code Igniter & Zend Framework Uma UniãO De Sucesso
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucesso
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
 
Palestra Zend Framework no Governo Federal
Palestra Zend Framework  no Governo FederalPalestra Zend Framework  no Governo Federal
Palestra Zend Framework no Governo Federal
 
Palestra Zend Framework CISL 2012 - ZF no Governo Federal
Palestra Zend Framework CISL 2012 - ZF no Governo FederalPalestra Zend Framework CISL 2012 - ZF no Governo Federal
Palestra Zend Framework CISL 2012 - ZF no Governo Federal
 
O que é framework
O que é frameworkO que é framework
O que é framework
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
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
 
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDesenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
 
Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016
 
Demoiselle - Arquitetura
Demoiselle - ArquiteturaDemoiselle - Arquitetura
Demoiselle - Arquitetura
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop Magento
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Desenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleDesenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework Demoiselle
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Infraestrutura como código Terraform aws openshift Ansible
Infraestrutura como código Terraform aws openshift AnsibleInfraestrutura como código Terraform aws openshift Ansible
Infraestrutura como código Terraform aws openshift Ansible
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 

Plus de Flávio Lisboa

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPFlávio Lisboa
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaFlávio Lisboa
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasFlávio Lisboa
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?Flávio Lisboa
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPFlávio Lisboa
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamFlávio Lisboa
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadoresFlávio Lisboa
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)Flávio Lisboa
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
 

Plus de Flávio Lisboa (20)

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHP
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com Laminas
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadores
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 

Aplicando MVC com Zend Framework

  • 1. Visão Controlador Modelo Aplicando MVC em PHP com Zend Framework www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 2. Quem sou eu? www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 3. agenda ● Arquitetura geral do Zend Framework ● MVC no Zend Framework ● Camada de Controle ● Camada de Modelo ● Camada de Visão ● Exemplo de como estender o framework www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 4. Não vamos discutir PHP... ...porque um terço das aplicações do mundo já o utiliza... www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 5. E aplicações de negócio baseadas em PHP tendem a crescer... Part-Time Independent Corporate Developers Software And Hobbyists Vendors IT Developers Programmers (Millions) 2006 2007 2008 2009 2010 2011 2012 2013 Source: Gartner (December 2007) www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 6. Arquitetura geral do Zend Framework www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 7. Arquitetura geral do Zend Framework Data Database MVC XML Controller Search View PDF Core Security Cache i18n Web Services Acl Config Locale Date Auth Feed Log Translate Calendar Filter Client Registry Measure Currency Validate Server Session Services www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 8. www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte. Arquitetura geral do Zend Framework Fonte: blog.niot.net Transformers é uma marca registrada da Hasbro (http://www.hasbro.com). Todos os direitos reservados.
  • 9. www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte. Arquitetura geral do Zend Framework Fonte: http://www.nipoheroes.hpg.ig.com.br/SSentai/Changeman/ArmasChangeman/ArmasChangeman.html Transformers é uma marca registrada da Hasbro (http://www.hasbro.com). Todos os direitos reservados.
  • 10. Arquitetura geral do Zend Framework Ou seja, Zend Framework é: ► Uma biblioteca de componentes. (fracamente acoplados). ► Um framework. (extensível e flexível). www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 11. Arquitetura geral do Zend Framework Biblioteca de componentes fracamente acoplados? O que isso significa? Que outros frameworks podem usar componentes do Zend. www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 12. Arquitetura geral do Zend Framework Framework extensível e flexível? O que isso significa? Que Zend Framework pode usar outros frameworks e componentes COMO SE FOSSEM REALMENTE PARTE DELE. www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 13. Arquitetura geral do Zend Framework Mais do que isso! A arquitetura do Zend Framework aproveita o modelo de negócio de software livre e evita forks! www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 14. Arquitetura geral do Zend Framework METODOLOGIA “NÃO QUERO PAGAR E TENHO PRAZO PRA ENTREGAR” 1. TENHO UM PROBLEMA! 2. USO A COMUNIDADE 3. NÃO POSSO ESPERAR! 6. E SE TIVER QUE FAZER 5. RESOLVI O PROBLEMA! MANUTENÇÃO? 4. FAÇO UM FORK (OU POG) (PELO MENOS AGORA...) www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 15. Arquitetura geral do Zend Framework METODOLOGIA ZEND FRAMEWORK 1. TENHO UM PROBLEMA! 2. USO A COMUNIDADE 3. NÃO POSSO ESPERAR! 6. O QUE FOI PRA 5. RESOLVI O PROBLEMA COMUNIDADE SERÁ 4. ESTENDO, USANDO DIREITO! TESTADO, APERFEIÇOADO E A INTERFACE PADRÃO, PODEREI UTILIZAR SEM E SUBMETO PRA COMUNIDADE CAUSAR IMPACTO NA APLICAÇÃO! www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 16. Arquitetura geral do Zend Framework Namespaces Os nomes das classes possuem um relacionamento de 1 para 1 com o sistema de arquivos: Zend_Db_Table => Zend/Db/Table.php $al = Zend_Loader_Autoloader::getInstance(); $al->registerNamespace('Huguinho_'); $al->registerNamespace(array('Zezinho_', 'Luisinho_')); www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 17. MVC no Zend Framework APLICAÇÕES SÃO COMO CEBOLAS... Shrek é uma marca registrada da Dreamworks (http://www.dreamworksanimation.com). Todos os direitos reservados. www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 18. MVC no Zend Framework Fonte: http://blog.fedecarg.com/2008/07/28/zend-framework-architecture/ Homem-Aranha é uma marca registrada da Marvel (http://www.marvel.com). Todos os direitos reservados. www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte. Fonte: http://www.lojadeanimes.com.br
  • 19. MVC no Zend Framework C v HTTP Controlador REQUEST Frontal M www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 20. MVC no Zend Framework O Controlador Frontal exige reescrita de URL. A aplicação interpreta a requisição, não o servidor. SetEnv APPLICATION_ENV development RewriteEngine On RewriteRule ^.*$ public/index.php www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 21. MVC no Zend Framework As rotas-padrão do Zend framework são: aplicação/controlador/ação/chave1/valor1 aplicação/módulo/controlador/ação/chave1/valor1 www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 22. MVC no Zend Framework Mas o framework permite a criação de rotas customizadas. $router = $ctrl->getRouter(); $router->addRoute( 'user', new Zend_Controller_Router_Route('user/:use rname', array('controller' => 'user', 'action' => 'info')) ); www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 23. MVC no Zend Framework Um projeto MVC pode ser criado rapidamente com Zend Tool. Ele pode ser executado na linha de comando ou integrado com IDEs como Eclipse e Netbeans. www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 24. MVC no Zend Framework # Unix: % zf.sh create project quickstart # DOS/Windows: C:> zf.bat create project quickstart www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 25. MVC no quickstart |-- application Zend | | |-- Bootstrap.php |-- configs Framework | | | `-- application.ini |-- controllers | | |-- ErrorController.php | | `-- IndexController.php | |-- models | `-- views | |-- helpers | `-- scripts Estrutura | | |-- error | `-- error.phtml do projeto MVC | `-- index | `-- index.phtml Zend Framework |-- library convencional |-- public | `-- index.php `-- tests |-- application | `-- bootstrap.php |-- library | `-- bootstrap.php `-- phpunit.xml 14 directories, 10 files www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 26. MVC no Zend Framework Inicialização da aplicação <?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { } www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 27. MVC no Zend Framework Configuração da aplicação [production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" [staging : production] [testing : production] phpSettings.display_startup_errors = 1 Controlador phpSettings.display_errors = 1 Frontal [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 28. MVC no Zend Framework Carregamento da Configuração /** Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run(); www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 29. MVC no Zend Framework O Controle Fonte: http://cesarpallares.files.wordpress.com/2009/01/agente-86.jpg www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 30. MVC no Zend Framework Padrão de Projeto: Controlador de página <?php class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { // action body } } www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 31. MVC no Zend Framework Controlador de erros class ErrorController extends Zend_Controller_Action { public function errorAction() { $errors = $this->_getParam('error_handler'); switch ($errors->type) { case 'EXCEPTION_NO_CONTROLLER': case 'EXCEPTION_NO_ACTION': // 404 error -- controller or action not found $this->getResponse()->setHttpResponseCode(404); $this->view->message = 'Page not found'; break; default: // application error $this->getResponse()->setHttpResponseCode(500); $this->view->message = 'Application error'; break; } www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 32. MVC no Zend Framework Fluxo da requisição e plugins C www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 33. MVC no Zend Framework O Modelo Cláudia Schiffer Naomi Campbell Riyo Mori www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 34. MVC no Zend Framework Não tem Zend_Model... Mas tem: ►Zend_Db_Table ►Zend_Feed ►Zend_Rest ►Zend_Service ►Zend_Soap ►Zend_XmlRpc ►Zend_Search_Lucene ...
  • 35. MVC no Zend Framework Zend_Db_Table ►Mapeia tabelas relacionais para classes PHP. ►Define relacionamentos e restrições no modelo. ►Permite construir consultas orientadas a objeto com Zend_Db_Table_Select. ►Não obriga a criação de classes PHP (>1.10), pode criar modelos dinamicamente. ►Pode ser usado de dois modos: →Tenho saudade de SQL → Active Record
  • 36. MVC no Zend Framework A Visão Fonte: http://amigosdeoracao.files.wordpress.com/2009/07/olho_azul1.jpg www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 37. MVC no Zend Framework Para a interface com o usuário, Zend Framework usa o padrão de projeto Vista em Duas Etapas. 1) Primeiro ele transforma dos dados provenientes do modelo, ou enviados pelo controlador, em uma apresentação lógica, sem qualquer formatação específica (Zend_View) 2) Depois, ele converte essa apresentação lógica na formatação real necessária (Zend_Layout) www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 38. MVC no Zend Framework Um layout pode servir para várias páginas: CSS Javascript Layout Página 1 Página 2 Página 3 Página 4 Página 5 CONTEÚDO, NO CORPO DO DOCUMENTO www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 39. MVC no Zend Framework Zend_View permite reutilização de componente de visão: view partials Visão Principal Partial 1 Partial 2 Partial 3 Partials podem ser reaproveitados www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 40. Exemplo de como estender o framework Projeto FGSL2ZF http://sourceforge.net/projects/fgslibraryphp Tratado no livro: Criando Aplicações PHP com Zend e Dojo www.fgsl.eti.br. É livre a reprodução, desde que citada a fonte.
  • 43. Referências ● Matthew Weier O'Phinney. Zend Framework Tutorial. ZendCon 2009. ● Martin Fowler. Padrões de Arquitetura de Aplicações Corporativas. Bookman, 2006.
  • 44. Mais informações ● Zend Framework website http://framework.zend.com ● Zend Developer Zone http://devzone.zend.com ● ZFTutorials forum http://www.zftutorials.com ● Blogs ● Matthew Weier O'Phinney: http://weierophinney.net/matthew ● Cal Evans: http://blog.calevans.com ● Andries Seutens: http://andries.systray.be/blog ● Rob Allen: http://akrabat.com ● Zend Framework Brasil ● http://www.zfbrasil.com ● http://groups.google.com/group/zfbrasil
  • 45. Créditos das imagens ● Imagem do Pensador de Auguste Rodin: http://phabrycyulandia.blogspot.com/2010/06/pensamento-em-bronze.html ● Imagem da nuvem: http://ointercessor.blogspot.com/2010/03/nuvem-de-deus.html ● Posição romana “poupem o gladiador”: http://www.observadordaqualidade.com.br/o_que_eh_qualidade/o_que_%20eh_qualidade.gif ● Cogumelo nuclear: http://naweb.files.wordpress.com/2008/04/fim.jpg ● Relógio com homem como ponteiro: http://www.blogdosempreendedores.com.br/wp-content/uploads/2010/04/tempo.jpg ● Tomada e plugue no novo padrão brasileiro: http://tecnocracia.com.br/wp-content/uploads/2007/07/tomadas_padrao3pinos.jpg ● Menino vibrando de alegria: http://20anosdesolidao.blogspot.com/2009/10/alegria-alegria-eu-voltei-para-ninguem.html