O documento fornece instruções para criar um projeto básico usando o framework Zend Framework 2 (ZF2). Ele descreve como preparar o ambiente de desenvolvimento com WampServer ou XAMPP, estruturar o projeto inicial com pastas públicas e privadas, e testar o projeto acessando uma URL local.
1. Criação de um Projeto 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çã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>
12. 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