Criação de um Projeto Básico
com Zend Framework 2




            ● Edgar
            ● Priscila
Sobre o ZF (Zend Framework)
● Um projeto Open Source de iniciativa da Zend,
   mesma organização que mantém o PHP.

● Framework para Aplicações Web no Ambiente
   Apache/PHP.

● Objetivo de facilitar o desenvolvimento e implementar
   as melhores práticas

● Conta com mais de 300 contribuidores, incluindo
   grandes corporações como IBM, Google e Microsoft.
Sobre o ZF (Zend Framework)
● Arquitetura modular, permite usar somente alguns
  módulos, se adaptando a qualquer ambiente.

● Componentes para integração com web services. A
  biblioteca padrão para acesso aos serviços do google
  via PHP, faz parte do ZF.

● Componentes para implementar MVC, TableGateway,
  autenticação e autorização via ACLs

● Suporte ao desenvolvimento orientado a testes.

● Vasta documentação, inclusive um livro produzido pela
  Zend com mais de 1300 páginas
Arquitetura - SOLID
● SOLID - Princípios da programação orientada a objetos
   e padrões.

   ○ SRP (Single responsibility principle), o objeto deve
     ter somente uma responsabilidade simples.

   ○ OCP (Open/closed principle), deve ser aberto para
     extensão e fechado para modificações.

   ○ LSP (Liskov substitution principle), objetos devem
     ser substituíveis por ocorrencias de seus subtipos
     sem prejudicar o programa.
Arquitetura - SOLID

  ○ ISP (Interface segregation principle), várias
    interfaces específicas e melhor que poucas de
    propósito geral.

  ○ DIP (Dependency inversion principle), injeção de
    dependência é um método de implementar este
    princípio.
Preparando o Ambiente
● Para a instalação, existem diverços pacotes que já
   vem com o PHP, Apache e MySQL integrados, segue
   os mais populares para Windows.
   ○ WampServer (http://www.wampserver.com/en/)
   ○ EasyPHP (http://www.easyphp.org)
   ○ XAMP (http://www.apachefriends.org)

● O ZF é uma biblioteca que será incorporada à sua
   aplicação, não sendo necessária a instalação, segue
   link para baixar;
       http://framework.zend.com/downloads/latest
Preparando o Ambiente
● O ZF faz uso de reescrita de URL, então, uma pequena
  alteração deve ser feita no Apache.

   ○ Ativação do módulo de reescrita de URL (Extensão
     mod_rewrite)

   ○ O apache deve ser configurado para considerar o
     uso do arquivo .htaccess, isto pode ser feito
     alterando a directiva AllowOverride no arquivo de
     configuração httpd.conf;
            AllowOverride All
Preparando o Ambiente
● É uma boa prática trabalhar com hosts virtuais em um
  ambiente de desenvolvimento, isto permite ter vários
  projetos na mesma máquina.

   ○ Por padrão, o apache vem sem opção para hosts
     virtuais, isto pode ser descomentando ou
     adcionando a seguinte linha no httpd.conf;
         Include conf/extra/httpd-vhosts.conf


   ○ No arquivo de vhosts tem algumas definições de
     exemplo, estas devem ser apagadas ou
     comentadas
Preparando o Ambiente
  ○ Por padrão o Apache vem configurado para não
    permitir projetos fora da pasta www, existente
    diretório de instalação.

  ○ Esta definição dever ser alterada, isto é feito
    editando o arquivo httpd.conf;

            <Directory />
              Options FollowSymLinks
              AllowOverride None
              Order deny,allow
              Deny from all
            </Directory>
Primeiro Projeto
A seguir, a sequência de passos para criar um projeto
básico;
1. Criar um host virtual para o projeto (zteste)
   a. Definir o nome zteste no arquivo de hosts do windows (C:
       WindowsSystem32driversetchosts), a seguinte linha deve
       ser acrescentada;
               127.0.0.1 zteste
   b. Criar um host virtual, para fazer isto vamos editar o seguinte
       arquivo;
           ...apacheconfextrahttpd-vhosts.conf
Primeiro Projeto
Na configuração abaixo foi definido que o projeto ficará na
pasta D:tads2012.2tecwebprojetoszteste, a subpasta
public é onde vamos colocar os arquivos públicos.
<VirtualHost *:8080>
  DocumentRoot "D:tads2012.2tecwebprojetosztestepublic"
  ServerName zteste
  SetEnv APPLICATION_ENV "development"
   <Directory "D:tads2012.2tecwebprojetosztestepublic">
          DirectoryIndex index.php
          AllowOverride all
          Order Allow,Deny
          Allow from all
     </Directory>
</VirtualHost>
Primeiro Projeto
● Uma estrutura inicial para o projeto deve ser baixada;
      https://github.com/zendframework/ZendSkeletonApplication

● A documentação do ZF sugere a utilização do "http:
  //getcomposer.org/" para gerenciar dependências e
  fazer a configuração inicial do projeto.

● Para um melhor entendimento sobre a estrutura, vamos
  configurar sem o composer, desta forma, a estrutura
  inicial baixada deve ser copiada para a pasta do
  projeto.

● A biblioteca do zend deve ser então copiada para a
  pasta ..vendorZF2
Primeiro Projeto - Estrutura
Primeiro Projeto - Teste
Aponte o navegador para a url http://zteste:8080/, verá a
página inicial. O projeto esta pronto para ser trabalhado.
Referências
● http://www.zend.com/en/community/framework.
● http://pt.wikipedia.org/wiki/Zend_Framework.
● http://framework.zend.
  com/wiki/display/ZFDEV/PHP+Coding+Standard+%
  28draft%29
● https://media.readthedocs.org/pdf/zf2/latest/zf2.pdf
● http://en.wikipedia.org/wiki/SOLID_(object-
  oriented_design)
● http://codebetter.com/davidhayden/2005/06/11/the-
  liskov-substitution-principle-agile-software-development-
  principles-patterns-and-practices/
● http://c2.com/cgi/wiki?LiskovSubstitutionPrinciple

Apresentação zend framework 2 parte 1

  • 1.
    Criação de umProjeto Básico com Zend Framework 2 ● Edgar ● Priscila
  • 2.
    Sobre o ZF(Zend Framework) ● Um projeto Open Source de iniciativa da Zend, mesma organização que mantém o PHP. ● Framework para Aplicações Web no Ambiente Apache/PHP. ● Objetivo de facilitar o desenvolvimento e implementar as melhores práticas ● Conta com mais de 300 contribuidores, incluindo grandes corporações como IBM, Google e Microsoft.
  • 3.
    Sobre o ZF(Zend Framework) ● Arquitetura modular, permite usar somente alguns módulos, se adaptando a qualquer ambiente. ● Componentes para integração com web services. A biblioteca padrão para acesso aos serviços do google via PHP, faz parte do ZF. ● Componentes para implementar MVC, TableGateway, autenticação e autorização via ACLs ● Suporte ao desenvolvimento orientado a testes. ● Vasta documentação, inclusive um livro produzido pela Zend com mais de 1300 páginas
  • 4.
    Arquitetura - SOLID ●SOLID - Princípios da programação orientada a objetos e padrões. ○ SRP (Single responsibility principle), o objeto deve ter somente uma responsabilidade simples. ○ OCP (Open/closed principle), deve ser aberto para extensão e fechado para modificações. ○ LSP (Liskov substitution principle), objetos devem ser substituíveis por ocorrencias de seus subtipos sem prejudicar o programa.
  • 5.
    Arquitetura - SOLID ○ ISP (Interface segregation principle), várias interfaces específicas e melhor que poucas de propósito geral. ○ DIP (Dependency inversion principle), injeção de dependência é um método de implementar este princípio.
  • 6.
    Preparando o Ambiente ●Para a instalação, existem diverços pacotes que já vem com o PHP, Apache e MySQL integrados, segue os mais populares para Windows. ○ WampServer (http://www.wampserver.com/en/) ○ EasyPHP (http://www.easyphp.org) ○ XAMP (http://www.apachefriends.org) ● O ZF é uma biblioteca que será incorporada à sua aplicação, não sendo necessária a instalação, segue link para baixar; http://framework.zend.com/downloads/latest
  • 7.
    Preparando o Ambiente ●O ZF faz uso de reescrita de URL, então, uma pequena alteração deve ser feita no Apache. ○ Ativação do módulo de reescrita de URL (Extensão mod_rewrite) ○ O apache deve ser configurado para considerar o uso do arquivo .htaccess, isto pode ser feito alterando a directiva AllowOverride no arquivo de configuração httpd.conf; AllowOverride All
  • 8.
    Preparando o Ambiente ●É uma boa prática trabalhar com hosts virtuais em um ambiente de desenvolvimento, isto permite ter vários projetos na mesma máquina. ○ Por padrão, o apache vem sem opção para hosts virtuais, isto pode ser descomentando ou adcionando a seguinte linha no httpd.conf; Include conf/extra/httpd-vhosts.conf ○ No arquivo de vhosts tem algumas definições de exemplo, estas devem ser apagadas ou comentadas
  • 9.
    Preparando o Ambiente ○ Por padrão o Apache vem configurado para não permitir projetos fora da pasta www, existente diretório de instalação. ○ Esta definição dever ser alterada, isto é feito editando o arquivo httpd.conf; <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
  • 10.
    Primeiro Projeto A seguir,a sequência de passos para criar um projeto básico; 1. Criar um host virtual para o projeto (zteste) a. Definir o nome zteste no arquivo de hosts do windows (C: WindowsSystem32driversetchosts), a seguinte linha deve ser acrescentada; 127.0.0.1 zteste b. Criar um host virtual, para fazer isto vamos editar o seguinte arquivo; ...apacheconfextrahttpd-vhosts.conf
  • 11.
    Primeiro Projeto Na configuraçãoabaixo foi definido que o projeto ficará na pasta D:tads2012.2tecwebprojetoszteste, a subpasta public é onde vamos colocar os arquivos públicos. <VirtualHost *:8080> DocumentRoot "D:tads2012.2tecwebprojetosztestepublic" ServerName zteste SetEnv APPLICATION_ENV "development" <Directory "D:tads2012.2tecwebprojetosztestepublic"> DirectoryIndex index.php AllowOverride all Order Allow,Deny Allow from all </Directory> </VirtualHost>
  • 12.
    Primeiro Projeto ● Umaestrutura inicial para o projeto deve ser baixada; https://github.com/zendframework/ZendSkeletonApplication ● A documentação do ZF sugere a utilização do "http: //getcomposer.org/" para gerenciar dependências e fazer a configuração inicial do projeto. ● Para um melhor entendimento sobre a estrutura, vamos configurar sem o composer, desta forma, a estrutura inicial baixada deve ser copiada para a pasta do projeto. ● A biblioteca do zend deve ser então copiada para a pasta ..vendorZF2
  • 13.
  • 14.
    Primeiro Projeto -Teste Aponte o navegador para a url http://zteste:8080/, verá a página inicial. O projeto esta pronto para ser trabalhado.
  • 15.
    Referências ● http://www.zend.com/en/community/framework. ● http://pt.wikipedia.org/wiki/Zend_Framework. ●http://framework.zend. com/wiki/display/ZFDEV/PHP+Coding+Standard+% 28draft%29 ● https://media.readthedocs.org/pdf/zf2/latest/zf2.pdf ● http://en.wikipedia.org/wiki/SOLID_(object- oriented_design) ● http://codebetter.com/davidhayden/2005/06/11/the- liskov-substitution-principle-agile-software-development- principles-patterns-and-practices/ ● http://c2.com/cgi/wiki?LiskovSubstitutionPrinciple