ב"ה

Blog do Adler Medrado

Blog do Adler Medrado

Jan 19 / 3:57pm

Zend Framework Tutorial Series - Capítulo 1

Estou iniciando uma série de tutoriais sobre Zend Framework onde eu pretendo mostrar desde os conceitos básicos até os avançados.

Tentarei colocar um novo capítulo semanalmente, desta forma teremos uma janela boa para praticar o conteúdo proposto.

Este primeiro Tutorial da série visa demonstrar a instalação e configuração do ambiente bem como criar a estrutura de diretórios de uma aplicação utilizando o Zend_Tool.

Antes de mais nada, os pré-requisitos para continuar este tutorial são:

1- Conhecimento de PHP utilizando os conceitos de Orientação a Objetos.
2- Configuração do ambiente (Apache, PHP, etc).
3- Domínio do Sistema Operacional que está utilizando.

IMPORTANTE: Caso você não possua este conhecimento eu sugiro que não continue com este tutorial e sim busque conhecer estes pré-requisitos.

Eu vou partir do princípio que você já possui o ambiente pra rodar PHP instalado em sua máquina, ok? 

Vamos lá!
  • Após terminar de ler este capítulo da série você estará apto a:
  • Configurar variáveis de ambiente do sistema operacional
  • Configurar domínios virtuais no apache
  • Configurar o sistema operacional para lidar com hosts locais
  • Criar a estrutura de diretórios de uma aplicação escrita em Zend Framework utilizando o Zend_Tool

BAIXANDO O ZEND_FRAMEWORK E CONFIGURANDO O AMBIENTE

Primeiramente, baixe o Zend Framework em: http://framework.zend.com/

Descompacte o conteúdo deste pacote no local que você desejar e inclua o conteúdo da pasta library no include_path do seu ambiente PHP.

Para setar o include_path você deverá alterar seu php.ini conforme orientações nesse link (http://www.php.net/manual/en/ini.core.php#ini.include-path).

Beleza!!! Agora vamos colocar o script do Zend_Tool no PATH do sistema operacional.

No Mac, eu editei o arquivo .bash_profile que se encontra no meu diretório home e coloquei o seguinte:
export PATH=~/bin:/usr/local/bin:/Users/adlermedrado/dev/share/zf/bin:$PATH onde /Users/adlermedrado/dev/share/zf é o local onde eu coloquei o conteúdo do arquivo que baixamos do site http://framework.zend.com e /bin é onde se encontram os scripts do Zend_Tool.

Em ambientes Windows, você deve ir no Painel de Controle->Sistema->Avançado->Variáveis de Ambiente e na variável PATH (Se ela não existir, crie) colocar o caminho do local onde você descompactou o Zend Framework até o diretório bin. 

IMPORTANTE: Eu coloquei essa configuração do Windows conforme lembrei de cabeça. Caso haja algum erro me desculpem, pois, eu não tenho nenhuma máquina windows aqui para verificar se o que falei está 100%.

Ok. Com as variáveis de ambiente configuradas, abra uma janela do terminal e digite o seguinte: zf.bat (windows) e zf.sh (*nix).

Se aparecer o help com uma listagem de comandos , está tudo certo. Caso o resultado seja uma mensagem de comando não existente ou algo parecido, verifique a variável PATH do seu sistema operacional. (Veja Figura 1)

CRIANDO A ESTRUTURA DA APLICAÇÃO

Agora que o Zend_Tool está acessível da linha de comando, vamos criar a estrutura de nosso projeto.

O Zend_Tool é uma aplicação que roda na linha de comando (CLI) que nos facilita a criação de projetos com Zend Framework. 

Com ele nós po demos criar o projeto, controllers, actions, etc; Não precisa se preocupar pois veremos os comandos do Zend_Tool detalhadamente nos próximos capítulos.

A seguir você poderá criar a estrutura de um projeto. Preparado? 

No diretório de sua escolha (aqui na minha máquina eu escolhi: /Users/adlermedrado/Sites/zf-series) digite o seguinte comando:
zf.sh create project zf-series (Lembre-se que em windows o comando é zf.bat ou somente zf).

Este comando criará a estrutura de diretórios necessária para uma aplicação com Zend Framework. (Veja Figura 2)

Você viu que dentro do diretório zf_series foram criados diversos diretórios mas nós entraremos em detalhes nesses diretórios conforme formos avançando nos tutoriais com excessão do diretório public o qual falaremos agora.

O diretório public é o diretório público da aplicação (duh!)  ou seja, neste diretório nós colocaremos os arquivos de imagens, javascript, CSS, etc. Este diretório será nosso DocumentRoot e como tal deve ser configurado no apache.

Os demais diretórios são da aplicação e não precisam ser acessados pela URL por intermédio do servidor web e isso nos dá uma segurança maior pois os arquivos com regras de negócio, configurações de conexão com banco de dados, etc, não precisam ser acessados pela URL para serem compilados e interpretados pelo PHP então, desta forma nós garantimos que serão acessívels pelo público somente arquivos de pouca importância (no sentido de segurança) como CSS, imagens e afins.

Como esta pasta é o DocumentRoot, nós devemos criar um domínio virtual para este projeto;  Nós faremos isso configurando o servidor web Apache Httpd.

CONFIGURANDO O SERVIDOR WEB

No diretório onde meu Apache está instalado eu tenho um arquivo chamado extras/httpd_vhosts.conf e será nele que adicionarei o domínio virtual para nossa aplicação.

Neste arquivo eu criei o meu virtual host da seguinte forma:

<VirtualHost *:80>
    ServerAdmin adlermedrado@gmail.com
    DocumentRoot "/Users/adlermedrado/Sites/zf-series/public"
    ServerName zf-series
    ServerAlias zf-series
    ErrorLog "/private/var/log/apache2/zf-series-error_log"
    CustomLog "/private/var/log/apache2/zf-series-access_log" common

<Directory "/Users/adlermedrado/Sites/zf-series/public">
  Options Includes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

</VirtualHost> 

O próximo passo é configurar seu Sistema Operacional para que ele saiba que o endereço zf-series se encontra no domínio virtual definido acima.

Em meu Mac eu editei o arquivo /etc/hosts e ele ficou da seguinte forma:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

# Meus dominios locais
127.0.0.1 zf-series

Em um ambiente Windows você deve editar o arquivo C:\Windows\System32\drivers\etc\hosts e a edição dele é igual a do meu exemplo acima.

TESTANDO O AMBIENTE

Se nossas configurações forem bem sucedidas, se nós digitarmos em um browser a URL http://zf-series ela será direcionada para o index de nossa aplicação; 

Se for mostrada uma tela de boas-vindas ao Zend Framework, a configuração foi realizada com sucesso. (Veja Figura 3).

Caso não funcione da forma correta, revise a configuração do domínio virtual e da configuração do DNS (hosts);

CONFIGURAÇÕES FINAIS

Este primeiro capítudo da nossa série termina por aqui. 
No próximo eu entrarei em detalhes na estrutura de pastas criada pelo Zend_Tool e na estrutura MVC do Zend Framework; Nesta ocasião criaremos nosso primeiro controller e suas actions.

Espero que este tutorial seja útil para você.
Não esqueça de dar seu feedback. Ele é muito importante para os próximos capítulos da série.

Abraço.
Loading mentions Retweet

17 comments

Jan 20, 2010
Thiago Colares said...
Boa Adler! Parabéns pela iniciativa...
Jan 20, 2010
joão batista said...
Admiro muito seu trabalha e a dedicação pela ajuda que vem dar a outro colegas que estão com dificuldade em usar ZendFrmawork, eu mesmo aprendi muito com seus tutoriais.
Jan 25, 2010
Fernando Medrado said...
Salve grande Adler. Tudo na paz?

Cara, atitude grandiosa a tua, sem nenhuma dúvida esse tuto vai ajudar e muito. Material de qualidade, bem explicado assim sobre o ZF não se encontra em qualquer lugar.
Muito bom mesmo, to na expectativa do próximo.

Abraços!

Feb 01, 2010
Milton Lima said...
Blz. . . Velho . . .
Estou entrando no mundo do zend agora, assim com o brother ai, achei bacana seu tutorial... Se vc puder falar como faz para mudar a estrutura de diretorios gerada pelo zf, ficarei agradecido.
Tipo incluindo diretorios de modulos dentro da aplicacao.

Valew! ! ! Abrass...

Feb 02, 2010
Parabéns, Adler. Muito bom esse tutorial.

Não se esqueça de me informar a data do seu próximo curso de ZF. Te perguntei pelo twitter e você esqueceu de me dizer.

Abraço!

Feb 17, 2010
Adler Medrado said...
Fernando: O próximo acabou de sair do forno. Depois me diga o que achou.

Milton: Iremos abordar isso em capítulos posteriores. Abração.

Bruno: Infelizmente eu ainda não tenho previsão de treinamento em ZF pela X25. Assim que souber, eu aviso pelo twitter e aqui pelo blog, blz?

Abraços!!!!!

Feb 21, 2010
Aguinaldo said...
to com problemas para setar a variaveis de ambentes. alguem pode me ajudar to usando ubuntu 9.10. brigado
Feb 21, 2010
Adler Medrado said...
Aguinaldo: Tudo bem? Qual problema foi apresentado? Coloque uma mensagem de erro ou algo assim para tentarmos te ajudar de uma forma mais eficiente.
Até mais!
Feb 21, 2010
Aguinaldo said...
Abler, bom dia.
o baixei os arquivos. mas nao sei como colocar nas variaveis de abiente e no php.ini estou usando o ubuntu 9.10. to tentada a dias ja tente no windows e agora no linux sem progressos. o servidor lamp ta funcionando. agora tenho uma pasta com o zend e prescisso coloca-la no path e conficurar o php.ini. brigado
Feb 21, 2010
Adler Medrado said...
Olá. Tente colocar export PATH=~/bin:/usr/local/bin:/Users/adlermedrado/dev/share/zf/bin:$PATH onde /Users/adlermedrado/dev/share/zf em seu .bash_profile, obviamente alterando os caminhos para o seu ambiente. O php.ini você deve edita-lo e habilitar o include_path direcionando para o diretorio onde encontra-se seu pacote do Zend Framework.

Sugiro a você que assine a lista que criei para discutirmos sobre o tutorial: http://groups.google.com/group/zend-framework-series-br

abraços.

Feb 21, 2010
Aguinaldo said...
Adler, descompactei o zendo em:
/home/aguinaldo/ZendFramework-1.10.1

ai fui em /etc/profile e coloquei:
export PATH=~/bin:/usr/local/bin:/home/aguinaldo/ZendFramework-1.10.1/bin:$PATH

em php.ini:
include_path = ".:/home/aguinaldo/ZendFramework-1.10.1/library"
veja pra mim por favor.
brigado

Feb 21, 2010
Aguinaldo said...
Adler deu certo mais ou menos voltei pro windows de configurei mas agora ta dando o seguite erro quando vou acessar o projeto no browser:
Warning: require_once(Zend/Application.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\zf-series\public\index.php on line 18

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Application.php' (include_path='C:\wamp\www\zf-series\library;.;C:\php5\pear') in C:\wamp\www\zf-series\public\index.php on line 18

brigado

Mar 04, 2010
Rafael Bozzetti said...
Muito legal Adler, parabéns!
Mar 30, 2010
Paulo Eduardo said...
Ola Adler, tudo bem?

Cara, antes de mais nada otima iniciativa sua criar esse tutorial de Zend Framework, estava quebranda a cabeça aqui pra aprender um pouco, mas agora vou seguir todos os passos.

Mas nesse primeiro me restou uma duvida, eu estou usando o Zend Framework com Zend Studio, e ele também cria uma estrutura para desenvolvimento com o Framework automaticamente, queria saber se essa estrutura é a mesma criada pelo Zend_Tool?

Apr 28, 2010
Menandro Dias E. Neto said...
Salve, salve Adler...

Cara, parabéns pela iniciativa, serei um freqüentador assíduo de seu blog.

Apr 28, 2010
Adler Medrado said...
Opa! 

Obrigado pela consideração. Estou devendo o terceiro capítulo da série mas prometo que logo logo eu coloco no ar.

Um grande abraço.

Jul 23, 2010
Din Freebies said...
gracias

Leave a comment...

 
Got an account with one of these? Login here, or just enter your comment below.
Posterous-login    twitter