Mini-curso desenvolvendo
aplicações com Zend Framework
             Domingos Teruel
                Analista de Software




                     Belo Horizonte, outubro de 2009
     2º Encontro dos usuários de PHP de Minas Gerais
Experiência profissional
• Tecnólogo em Processamento de dados,
  especialista em Interfaces de sistemas;

• Atua no desenvolvimento e implementação
  de sistemas web com software livre;

• Desenvolvedor PHP desde 1999;
• Analista de software de ITI em Lightcomm
  Tecnologia e Serviços

• Consultor em tecnologias móvel
  (especialista em ambiente Blackberry)

                        Belo Horizonte, outubro de 2009
   2º Encontro dos usuários de PHP de Minas Gerais
Neste mini-curso
•   Por que usar o Zend Framework

•   O que o Zend Framework é capaz de fazer

•   A filosofia por detrás do Zend Framework

•   Desenvolvimento de aplicativos web dentro do
    paradigma MVC

•   Uma visão do desenvolvimento de aplicativos usando
    o Zend Framework

•   Como preparar o ambiente para o desenvolvimento


                          Belo Horizonte, outubro de 2009
     2º Encontro dos usuários de PHP de Minas Gerais
Introdução
• Estrutura típica em sites web PHP
      Cabeçalho HTML




        Conexão com
       Banco de dados      A organização de um arquivo
                          PHP típico, mescla de código
                          HTML e PHP de forma linear à
       Início da página    medida que o arquivo é criado.
             HTML



         Consulta ao
       Banco de dados



       Tabela HTML +
            PHP




       Rodapé HTML




                         Belo Horizonte, outubro de 2009
    2º Encontro dos usuários de PHP de Minas Gerais
Introdução
• Conceito do Modelo-Visão-Controlador
         Arquivo de
     Bootstrap:index.php
                                                              Uma aplicação MVC
  (configuração e conexão)                                    típica separa o código
                                                              de uma aplicação em
                                                                responsabilidades
   Arquivo de controlodor                                           separadas
   (Lógica da aplicação)



                                   Arquivo do Modelo
                              (consultas a banco de dados)
  Arquivo de template
        da visão
        (HTML)




                           Belo Horizonte, outubro de 2009
      2º Encontro dos usuários de PHP de Minas Gerais
Por que escolher o
         Zend Framework
•   Introdução de um conjunto padronizado de componentes (APIs)

•   Facilidade de desenvolvimento

•   Recursos fundamentais
    •   Tudo na caixa (conceito de box)

    •   Design Moderno

    •   Fácil de aprender

    •   Completa documentação

    •   Desenvolvimento simplificado

    •   Desenvolvimento rápido


                             Belo Horizonte, outubro de 2009
        2º Encontro dos usuários de PHP de Minas Gerais
Tudo na caixa

           MVC            Autenticação e acesso



                           Comunicação entre
    Internacionalização
                              Aplicações



      Serviços Web           Princiapl (core)




                                                   Existem vários componentes no ZF,
                                                entretanto podemos agrupá-los nestas seis
                                                   categorias para facilitar a referência.


                     Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
E mais
• Design Moderno
 • PHP 5
 • Padrões de design (design patterns)
 • Flexibilidade
 • O Framework reconhece o “jeito php”
 • Baixa dependência (acoplação)


                        Belo Horizonte, outubro de 2009
   2º Encontro dos usuários de PHP de Minas Gerais
E mais
• Fácil de aprender
 • Modulado
• Documentação completa
 • Documentação incluída (http://
    framework.zend.com/manual)

• Desenvolvimento simplificado
 • Extraí ao máximo os pontos fortes do PHP
 • codifique só o necessário
                        Belo Horizonte, outubro de 2009
   2º Encontro dos usuários de PHP de Minas Gerais
E mais
• Desenvolvimento rápido
  • Facilita a continuidade
  • Adição de novas funcionalidades
  • Menos é mais
  • Chega de tanta configuração
• Código estruturado é mais fácil de ser mantido

                         Belo Horizonte, outubro de 2009
    2º Encontro dos usuários de PHP de Minas Gerais
O que há no ZF
             MVC                  Autenticação e acesso
 Zend_Controller           Zend_Acl
 Zend_Application          Zend_Auth
 Zend_Layout               Zend_Session
 Zend_View                 Zend_OpenId
                           Zend_InfoCard
                                                                     O Zend
                                                               Framework provê
     Internacionalização
Zend_Currency
                              Comunicação entre aplicações
                           Zend_Http_Client
                                                              vários componentes
Zend_Date                  Zend_Http_Server                  que incluem tudo o que
Zend_Locale                Zend_Json
Zend_View                  Zend_Ldap                            é necessário para
Zend_Translate             Zend_Rest
                           Zend_TimeSync
                                                                 desenvolver um
                           Zend_XmlRpc                              aplicação
                                                                   profissional.
       Serviços Web                        Principal
Zend_Feed                  Zend_Db
Zend_GData                 Zend_Cache
Zend_Service_*             Zend_Config
                           Zend_Filter
                           Zend_Form
                           Zend_Log
                           Zend_Mail
                           Zend_Memory
                           Zend_Pdf
                           Zend_Registry
                           Zend_Search
                           Zend_Uri
                           Zend_Validate




                         Belo Horizonte, outubro de 2009
    2º Encontro dos usuários de PHP de Minas Gerais
Componentes do MVC
• Completo sistema de MVC
• O Modelo (Zend_Db e Zend_Service)
• A visão (Zend_View)
• O controlador (Zend_Controller)
 • Design do controlador Frontal (Front
    Controller design pattern)



                        Belo Horizonte, outubro de 2009
   2º Encontro dos usuários de PHP de Minas Gerais
O Ambiente
• Ambiente de desenvolvimento LAMP (Linux
  Apache Mysql PHP)

• Software pré-requisito
 • Apache Web Server 2.2.x
   • Módulo Rewrite habilitado
   • suporte a mudança de ambiente (htaccess)
 • PHP 5.2.x
                         Belo Horizonte, outubro de 2009
    2º Encontro dos usuários de PHP de Minas Gerais
Obtendo o Zend
              Framework
•   Download direto de http://framework.zend.com/download/latest

•   Os pacotes

    •   ZendServer Community Edition

    •   Full Package

        •    Pacote completo com demos, apis experimentais, Dojo Toolkit e
             documentação

    •   Minimal Package

        •    Pacote standard das bibliotecas

•   Subversion

    •   svn co http://framework.zend.com/svn/framework/standard/
        trunk


                                 Belo Horizonte, outubro de 2009
            2º Encontro dos usuários de PHP de Minas Gerais
Usando o zf-tool para
 iniciar um projeto
• desde a versão 1.7
• configurando o zf-tool
• testando o zf-tool
• iniciando um projeto



                         Belo Horizonte, outubro de 2009
    2º Encontro dos usuários de PHP de Minas Gerais
Criando nossa aplicação
      de exemplo
• Preparando nosso site de exemplo
 • criando o projeto
 • definindo o banco de dados
  Campo               Tipo       Nulo     Observações

             id     integer      Não    auto-incremento
      artista     varchar(100)   Não
          disco   varchar(100)   Não



                        Belo Horizonte, outubro de 2009
   2º Encontro dos usuários de PHP de Minas Gerais
Aplicação de Exemplo
• Para nossa aplicação de exemplos teremos a
  seguinte estrutura de páginas
                            Página inicial contento uma
     Página Inicial
                          listagem dos últimos registro
 Adicionar novo artista    Adicionar um novo registro
     Editar artista       Editar os dados de um artistia
     Apagar artista          Apagar registro de artista




                         Belo Horizonte, outubro de 2009
    2º Encontro dos usuários de PHP de Minas Gerais

Desenvolvendo Aplicações com Zend Framework

  • 1.
    Mini-curso desenvolvendo aplicações comZend Framework Domingos Teruel Analista de Software Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 2.
    Experiência profissional • Tecnólogoem Processamento de dados, especialista em Interfaces de sistemas; • Atua no desenvolvimento e implementação de sistemas web com software livre; • Desenvolvedor PHP desde 1999; • Analista de software de ITI em Lightcomm Tecnologia e Serviços • Consultor em tecnologias móvel (especialista em ambiente Blackberry) Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 3.
    Neste mini-curso • Por que usar o Zend Framework • O que o Zend Framework é capaz de fazer • A filosofia por detrás do Zend Framework • Desenvolvimento de aplicativos web dentro do paradigma MVC • Uma visão do desenvolvimento de aplicativos usando o Zend Framework • Como preparar o ambiente para o desenvolvimento Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 4.
    Introdução • Estrutura típicaem sites web PHP Cabeçalho HTML Conexão com Banco de dados A organização de um arquivo PHP típico, mescla de código HTML e PHP de forma linear à Início da página medida que o arquivo é criado. HTML Consulta ao Banco de dados Tabela HTML + PHP Rodapé HTML Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 5.
    Introdução • Conceito doModelo-Visão-Controlador Arquivo de Bootstrap:index.php Uma aplicação MVC (configuração e conexão) típica separa o código de uma aplicação em responsabilidades Arquivo de controlodor separadas (Lógica da aplicação) Arquivo do Modelo (consultas a banco de dados) Arquivo de template da visão (HTML) Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 6.
    Por que escolhero Zend Framework • Introdução de um conjunto padronizado de componentes (APIs) • Facilidade de desenvolvimento • Recursos fundamentais • Tudo na caixa (conceito de box) • Design Moderno • Fácil de aprender • Completa documentação • Desenvolvimento simplificado • Desenvolvimento rápido Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 7.
    Tudo na caixa MVC Autenticação e acesso Comunicação entre Internacionalização Aplicações Serviços Web Princiapl (core) Existem vários componentes no ZF, entretanto podemos agrupá-los nestas seis categorias para facilitar a referência. Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 8.
    E mais • DesignModerno • PHP 5 • Padrões de design (design patterns) • Flexibilidade • O Framework reconhece o “jeito php” • Baixa dependência (acoplação) Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 9.
    E mais • Fácilde aprender • Modulado • Documentação completa • Documentação incluída (http:// framework.zend.com/manual) • Desenvolvimento simplificado • Extraí ao máximo os pontos fortes do PHP • codifique só o necessário Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 10.
    E mais • Desenvolvimentorápido • Facilita a continuidade • Adição de novas funcionalidades • Menos é mais • Chega de tanta configuração • Código estruturado é mais fácil de ser mantido Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 11.
    O que háno ZF MVC Autenticação e acesso Zend_Controller Zend_Acl Zend_Application Zend_Auth Zend_Layout Zend_Session Zend_View Zend_OpenId Zend_InfoCard O Zend Framework provê Internacionalização Zend_Currency Comunicação entre aplicações Zend_Http_Client vários componentes Zend_Date Zend_Http_Server que incluem tudo o que Zend_Locale Zend_Json Zend_View Zend_Ldap é necessário para Zend_Translate Zend_Rest Zend_TimeSync desenvolver um Zend_XmlRpc aplicação profissional. Serviços Web Principal Zend_Feed Zend_Db Zend_GData Zend_Cache Zend_Service_* Zend_Config Zend_Filter Zend_Form Zend_Log Zend_Mail Zend_Memory Zend_Pdf Zend_Registry Zend_Search Zend_Uri Zend_Validate Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 12.
    Componentes do MVC •Completo sistema de MVC • O Modelo (Zend_Db e Zend_Service) • A visão (Zend_View) • O controlador (Zend_Controller) • Design do controlador Frontal (Front Controller design pattern) Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 13.
    O Ambiente • Ambientede desenvolvimento LAMP (Linux Apache Mysql PHP) • Software pré-requisito • Apache Web Server 2.2.x • Módulo Rewrite habilitado • suporte a mudança de ambiente (htaccess) • PHP 5.2.x Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 14.
    Obtendo o Zend Framework • Download direto de http://framework.zend.com/download/latest • Os pacotes • ZendServer Community Edition • Full Package • Pacote completo com demos, apis experimentais, Dojo Toolkit e documentação • Minimal Package • Pacote standard das bibliotecas • Subversion • svn co http://framework.zend.com/svn/framework/standard/ trunk Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 15.
    Usando o zf-toolpara iniciar um projeto • desde a versão 1.7 • configurando o zf-tool • testando o zf-tool • iniciando um projeto Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 16.
    Criando nossa aplicação de exemplo • Preparando nosso site de exemplo • criando o projeto • definindo o banco de dados Campo Tipo Nulo Observações id integer Não auto-incremento artista varchar(100) Não disco varchar(100) Não Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais
  • 17.
    Aplicação de Exemplo •Para nossa aplicação de exemplos teremos a seguinte estrutura de páginas Página inicial contento uma Página Inicial listagem dos últimos registro Adicionar novo artista Adicionar um novo registro Editar artista Editar os dados de um artistia Apagar artista Apagar registro de artista Belo Horizonte, outubro de 2009 2º Encontro dos usuários de PHP de Minas Gerais