[ ZF2 ] Tutorial Zend Framework 2 – Parte 01

Instalação, Configuração, Criação do Projeto

Sumário

Nesta parte do nosso tutorial você vai aprender como baixar e instalar o Zend Framework versão 2, assim como ativar o mod_rewrite do Apache e criar um Virtual Host. Vai aprender a criar um hack no arquivo .htaccess para modificar o comportamento do Zend Framework.

Durante o decorrer do nosso tutorial estaremos desenvolvendo um site básico mas funcional que lhe ajudará a realizar qualquer site ou aplicação utilizando o ZF2 ( ZF2 é como iremos chamar o Zend Framework 2 daqui para frente ).

O ZF2 tem pouca semelhança à seu precedente ZF1 e por isto, uma nova abordagem deverá ser tomada e novos conceitos precisarão ser estudados.

IMPORTANTE

NOTA AOS DESENVOLVEDORES : Este tutorial utiliza o Zend Framework versão 2.2.5 e pode não funcionar em versões anteriores a esta versão.

NOVO TUTORIAL

Estou desenvolvendo um novo tutorial super completo sobre ZF2, caso queira ser notificado, envie um comentário com o texto TUTORIAL_ZF2, e assim que começar a publicá-lo vocês será notificados por email.
Clique aqui para enviar comentário

ESTE TUTORIAL NÃO FUNCIONA COM ZEND FRAMEWORK 1.xx.xx

IMPORTANTE: Após você ter criado o primeiro projeto em ZF2  você poderá simplesmente clonar seus próximos projetos sem a necessidade de realizar todos os procedimentos abaixo! Então não se assuste! Você só vai sofrer uma vez! (risos)

Instalação e Configuração

Para começar a usar o ZF2, precisamos cumprir alguns requisitos:

1 – Instalar e ativar o mod_rewrite

2 – Criar um servidor virtual

3 – Criar uma estrutura para a aplicação ou site baixando a aplicação esqueleto

4 – Baixar o ZF2 utilizando o Composer

5 – e muito mais…

NOTA: Para usar o ZF2 é preciso que você tenha o PHP 5.3 ou superior rodando em seu servidor, pois o ZF2 utiliza extensivamente todos os recursos do PHP 5.3.  O caminho do PHP deve estar configurado como variável de ambiente do sistema.

Vamos então dividir nosso tutorial em várias partes para poder manter um fluxo no aprendizado saudável e ficar mais fácil de nos localizarmos no todo.

Definindo o caminho do PHP no Sistema (para windows somente)

IMPORTANTE: Seu PHP não será reconhecido como comando interno ou externo, pois seu PHP.exe não foi configurado como variável do ambiente do windows. Para resolver isto siga os procedimentos abaixo:

1 – Clique com o botão direito em Meu Computador
2 – Propriedades
3 – Configurações Avançadas ou Aba Avançado
4 – Variáveis de Ambiente
5 – Procure e clique em “Path” e depois no botão “Editar
6 – Adicione ao final do que estiver lá o caminho do php: ;C:\CAMINHO\PARA\SEU\PHP
7 – ok, ok, ok
8 – Reinicie o computador se não der certo.

IMPORTANTE: Não deixe espaços entre ; e C:\ (;C:/) pois o sistema não encontrará o caminho.

Configurando o Servidor Apache para mod_rewrite

OBS.: Se você usa XAMPP ou WAMP favor verificar na documentação destes pacotes como ativar o Mod_Rewrite.

Antes de instalarmos o framework precisamos configurar o mod_rewrite no servidor.

Caso você esteja utilizando outro servidor que não seja o apache, você precisará verificar na documentação a forma mais correta de ativar o mod_rewrite ou correspondente deste.

Para o Apache, o procedimento é bem simples.

Como estou usando o Windows vou mostrar como proceder para obter o resultado desejado.

1 – Abra o arquivo httpd. conf do Apache, normalmente ele se encontra dentro da pasta conf dentro do diretório de instalação do Apache.

2 – Procure pela linha #LoadModule rewrite_module modules/mod_rewrite.so e retire o sustenido (#) inicial

3 – Procure pela Tag <Directory>

4 – Dentro desta troque Options FollowSymLinks por Options FollowSymLinks Includes

5 – Troque AllowOverride None por AllowOverride All

6 – Agora procure pela Tag <Directory “C:/Apache/htdocs”> que dependendo de sua instalação pode estar diferente, mas que é onde se encontra as configurações da pasta raiz do apache

7 – Tendo encontrado esta Tag, troque Options Indexes por Options Indexes FollowSymLinks

8 – Troque AllowOverride None por AllowOverride All

9 – No final do arquivo adicione a linha
AccessFileName .htaccess e estamos com o Apache configurado para mod_rewrite.

Criando um Virtual Host para simular servidor remoto

Para criar um Virtual Host no apache é bem fácil. Hipotéticamente vamos criar o host virtual “zf2.localhost

1 – Abra o arquivo CAMINHO/PARA/SEU/Apache/conf/httpd. conf
2 – Procure pelas linhas:

 lang="apache
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf

O sustenido (#) indica código comentado para o Apache, por isto não será executado.
Caso o seu esteja assim, remova o (#) da linha do include:

 lang="apache
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Feche o arquivo.
3 – Abra o arquivo CAMINHO/PARA/SEU/Apache/conf/extra/httpd-vhosts.conf e cole o código abaixo no final do arquivo:

 lang="apache
<VirtualHost *:80>
DocumentRoot "CAMINHO/PARA/SEU/Apache/htdocs/www/zf2-tutorial"
ServerName zf2.localhost
ErrorLog "logs/zf2-tutorial-error.log"
CustomLog "logs/zf2-tutorial-access.log" common
</VirtualHost>

Salve e feche o arquivo.
4 – Reinicie O Apache
5 – Execute o notepad como administrador (Vista/7/8 somente, xp não precisa ) e abra o arquivo: C:\windows\system32\drivers\etc\hosts
6 – No início do arquivo insira a linha:

 lang="apache
127.0.0.1    localhost
127.0.0.1    zf2.localhost

Salve e feche o arquivo

7 – Crie uma pasta chamada zf2-tutorial dentro de CAMINHO/PARA/SEU/Apache/htdocs/www/

8 – No navegador digite: http://zf2.localhost e pronto!

Criando a Estrutura de Arquivos

Uma aplicação com Zend Framework vai precisar utilizar um padrão, embora você possa configurar o mesmo de várias formas, bastando alterar os caminhos dos arquivos. Mas, para fins de obter um processo sem complicações, vamos utilizar o padrão oferecido pelo projeto.

Vamos criar o projeto dentro da pasta raiz de nosso servidor virtual, simulando um servidor remoto, pois você vai precisar saber fazer isto quando for instalar sua aplicação ou site num servidro remoto. Vamos usar o famoso padrão de redirecionamento com URLs limpas (Clean URLs) que elimina os tradicionais Query Strings ( Ex. http://zf2.localhost/index.php?module=default&controller=produto&action=ver&id=1 vai ficar http://zf2.localhost/produto/id/1)

ZF Tool

IMPORTANTE: Atualmente o ZF Tool não está disponível para Zend Framework 2. Por isto vamos criar tudo passo a passo manualmente.
NOTA: Quando escrevi este post em 2012 a Zend não havia disponibilizada o ZF Tool.

Baixando a Aplicação Esqueleto

A equipe da Zend disponibilizou uma aplicação esqueleto para servir de base para os projetos que estaremos utilizando neste tutorial.

A aplicação esqueleto é uma aplicação que utiliza a camada MVC do ZF2 e um sistema modular. Esta aplicação serve como um ponto de partida para quem procurar dar os primeiros passos com o ZF2.

Para baixá-la, acesse a página do GitHub disponível em https://github.com/zendframework/ZendSkeletonApplication ou baixa-a diretamente clicando aqui.

Uma vez baixada a aplicação esqueleto, descompacte o arquivo zipado e copie todos os arquivos para a pasta zf2-tutorial que você criou dentro da pasta de arquivos públicos de seu servidor web (htdocs ou www).

UPDATE on 06/11/2013:
Você pode baixar o repositório via git. Considerando que você tem o git instalado corretamente, digite:

git clone https://github.com/zendframework/ZendSkeletonApplication.git zf2-tutorial

Baixando o framework via Composer

Via Composer? – O que por Deus é isto?
Composer é uma ferramenta para gerenciamento de dependências em PHP e é distribuída através de um arquivo .PHAR que é um executável em PHP. Ele permite que você declare bibliotecas dependentes em seu projeto e ele irá instalá-las em seu projeto para você.

IMPORTANTE: A cada nova versão lançada este tutorial é atualizado, mas para os casos do lançamento ser muito recente à sua leitura, considere utilizar a versão indicada por este tutorial que será a indicada no link direto para a aplicação esqueleto citado acima.

Para cada projeto que utiliza o Composer é preciso definir um arquivo composer.json dentro da pasta raiz do projeto contendo as informações no formato JSON para que a ferramenta possa instalar as dependências para você. Mas tanto o executável do composer como este arquivo JSON já estão incluídos na aplicação esqueleto, confira no diretório de nosso tutorial que existem dois arquivos:

composer.phar
composer.json

Você poderá abrir o arquivo composer.json para tentar entender seu funcionamento, mas não altere nada!

No ZF2 as bibliotecas são encontradas dentro da pasta vendor antiga library. Esta pasta também é uma pasta padrão que o Composer utiliza para instalar as bibliotecas baixadas.

Para utilizar o Composer é preciso executá-lo e para tal o PHP deve estar com seu caminho definido nas variáveis de ambiente do sistema. No início do tutorial, há o passo-a-passo – verifique se você não realizou os procedimos, caso já tenha o PHP configurado, vamos lá.

Para executar o Composer, abra o terminal do windows (CMD ou Prompt de Comando) e acesse a pasta de nosso tutorial que deverá ser algo como C:/CAMINHO/PARA/PASTA/zf2-tutorial digitando:


CD C:/CAMINHO/PARA/PASTA/zf2-tutorial
php composer.phar install
# saia para tomar um cafezinho e espere...
# porque o negócio demoooooooooooooooooora!

IMPORTANTE
Ao executar esta linha de comando o Composer irá acessar o site do projeto PHP e baixar todo o master branch. Atualmente eu tentei baixar somente a versão Minimal do Zend e não consegui, por isto, se você quiser baixar todo o conteúdo oferecido pelo download via Composer(110MB). Espero que resolvam isto ou alguem me informe como baixar o pacote minimal via composer. Mas se estiver com pressa baixe o pacote no formato ZIP(4,7MB somente – removi o desnecessário) que gerei clicando aqui.
Caso use este pacote, esvazie a pasta do projeto e copie todos os meus arquivos para a pasta do projeto.

Arquivo .htaccess

A aplicação esqueleto já vem com o arquivo/zf2-tutorial/public/.htaccess , entretanto, ele ainda não está pronto para ser utilizado, pois não sei porque ele não está configurado corretamente e muito menos no local mais ideal, pois quando estamos utilizando uma hospedagem remota não temos acesso às configurações do apache e não poder especificar o caminho da pasta pública de nosso domínio e geralmente temos acesso a partir da pasta public_html do servidor, o que faz com que tenhamos que digitar www.seudominio.com/public para que o servidor encontre o arquivo index.php

O conteúdo do arquivo .htaccess fará com que todas as solicitações sejam redirecionadas para a pasta public de nossa aplicação, o que torna o acesso direto aos arquivos impossível.

Mude a localição do arquivo de /zf2-tutorial/public/.htaccess para /zf2-tutorial/.htaccess e modifique seu conteúdo conforme abaixo:

 lang="sql
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteRule !\.(js|gif|jpg|png|css|txt)$ public/index.php [L]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [NC,L]

Este arquivo tem um diferencial do padrão comum que você encontra em outros tutoriais tratando do Framework.

Nele nós alteramos o DocumentRoot do Apache, diferentemente de alterar nos arquivo de configuração do Apache. Isto é preciso pois, como já comentamos, em alguns casos o desenvolvedor não tem acesso aos arquivos de configuração ou mesmo uma opção de alterar a pasta raiz do servidor. Então, redirecionar com o arquivo .htaccess, mostrou-se ser mais versátil.

Welcome to the Zend Framework!

Para finalizar esta primeira parte de nosso tutorial, acesse http://zf2.localhost e você deverá ver a tela conforme a imagem abaixo. Caso apareça algum erro refaça os passos novamente e verifique possiveis erros de digitação, etc.

Tela de Boas Vindas do ZF2

Conclusão

Nesta parte do tutorial você aprendeu como instalar e configurar o ZF2 em seu servidor usando o Apache, aprendeu a criar um projeto utilizando a aplicação esqueleto baixando o ZF2 através do Composer e você também aprendeu a redirecionar as solicitações para a pasta public do projeto que vamos desenvolver.
No próximo tutorial vamos colocar a mão na massa e começar nossa viagem ao planeta ZF2.

Espero ter ajudado você neste primeiro passo. Dúvidas, dicas, reclamações e tudo o mais postem nos comentários que antes de moderar eu responderei pessoalmente à você!

Abraço do Giba!

5 comentários sobre “[ ZF2 ] Tutorial Zend Framework 2 – Parte 01”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *