Apesar do que eu tinha dito no post anterior, voltarei na idéia de instalação do Zend, já que nas últimas versões o Zend_Tool tem se mostrado uma ótima opção por ser rápido e prático para iniciar projetos, de forma muito mais eficiente que no tutorial passado.
Obs 1.: Desta vez eu fui mais específico quanto a instalação, mas não muito didático quanto a Controllers, Actions, View e o outras idéias do framework. Caso você não conheça muito sobre o framework, recomendo a leitura do meu post Começando com o Zend Framework 1.8 antes de continuar com esse.
Obs 2.: Faço este tutorial supondo que a versão usada no php é igual ou superior ao 5.2.4 e que o módulo mod_rewrite do Apache está habilitado.
Instalação em Windows:
Faça o download da última versão do Zend Framework, e extraia em uma pasta de fácil acesso. No caso do tutorial, eu estou usando a pasta C:\www\ZendFramework-1.9.4-minimal (foi usada a versão 1.9.4, a última versão lançada no momento de criação do tutorial).
Feito isso, precisamos certificar que o caminho para o arquivo .bat usado pelo Zend_Tool está no Path: para isso, vá em Painel de Controle > Sistema > Avançado > Variáveis de ambiente. Em “Variáveis do sistema”, edite o registro “Path”, colocando ao final ;C:\www\ZendFramework-1.9.4-minimal\bin.
Agora no prompt de comando (Iniciar > Executar > cmd), vamos testar se ele está encontrando o Path… digite:
zf show version
Se tudo der certo, ele deve mostrar a versão que será instalada. Se deu erro, certifique-se que o caminho que está no Path é correto.
Agora vá com o prompt até a pasta em que você deseja que seja criada a pasta do novo projeto. No caso, criei ele em C:\www\
cd C:\www\
Agora o comando para criar o projeto… eu o chamei de projeto_zf1.9.4:
zf create project projeto_zf1.9.4
Se tudo ocorreu corretamente, uma pasta com o mesmo nome do projeto foi criada e os arquivos básicos foram criados na estrutura padrão, conforme a imagem:

Agora só falta ligar a biblioteca do zend ao projeto. Podemos fazer isso de 2 maneiras: chamando a biblioteca externamente, adicionando-a ao path de execução do php (uma das maneiras de fazer isso é adicionando o caminho da biblioteca dentro do set_include_path() do index.php); ou copiando a pasta da biblioteca (que está em C:\www\ZendFramework-1.9.4-minimal\library) para a pasta library do projeto.
Pronto! Para vê-lo rodando, acesse a pasta /public. Pelo meu exemplo, basta acessar: http://localhost/projeto_zf1.9.4/public
Configurações básicas do Framework
Agora que temos a base já instalada e funcionando, as configurações são dependentes apenas das necessidades do projeto. Vou apresentar algumas dicas e opções que o framework nos proporciona, mas sem me aprofundar muito. Quem sabe depois eu faço alguns posts especificando alguns deles.
- Criando Controllers e Actions: Ao contrário do que acontecia antes, não é preciso mais criar controllers e actions manualmente. Isso é realmente uma maravilha, quem leu o post sobre o Zend 1.8, viu que era muito Ctrl+C Ctrl+V, pra criar a classe do Controller, criar o método do Action, depois encontrar a pasta das views e criar o .phtml… enfim, agora tudo isso se resolve com o Zend_Tool, em apenas 2 comandos no prompt (Não se esqueça de ir para a pasta do projeto antes de executar):
zf create controller nomecontroller
e
zf create action nomeaction nomecontroller
- Zend_Application: é o pontapé inicial da aplicação. Ele é chamado no index.php com o objetivo de inicializar a aplicação e chamar o Bootstrap. O componente nos permite criar recursos e executar alguns já disponíveis, como é o caso dos controllers, conexão ao banco, etc. Quem precisar criar ou usar recursos que sejam necessários durante a execução de todo o site, precisa saber mais sobre ele.
- Zend_Layout: Recurso muito usado com o Zend_View, que possibilita o uso de um layout padrão para todas as páginas. Para usá-lo, basta colocar as seguintes linhas no arquivo de configuração:
; nome do arquivo de layout padrão resources.layout.layout = "layout" ; caminho para uso dos layouts resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" ; seta o encoding do view resources.view.encoding = "UTF-8" ; seta o caminho das views resources.view.basePath = APPLICATION_PATH "/views"
Um exemplo de Layout (lembrando que deve ser um arquivo .phtml):
<?php echo $this->doctype('XHTML1_STRICT'); ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <?php echo $this->headTitle('Layout Title') ?> <?php echo $this->headLink() ?> <?php echo $this->headStyle() ?> <?php echo $this->headScript() ?> </head> <body> <?php echo $this->layout()->content ?> </body> </html> - Conexão com o Banco de Dados: Outro recurso já implementado pelo Zend_Application. Para usá-lo, basta escrever no arquivo de configurações os parâmetros que o Zend_Db precisa para conectar ao banco de dados. Uma configuração para MySQL:
resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "usuario" resources.db.params.password = "senha" resources.db.params.dbname = "nomedobanco"
Conclusão
Certamente faltam detalhes para rodar uma aplicação mesmo que básica a partir dessas informações, mas espero que seja uma boa contribuição para aqueles que procuram uma maneira rápida de ter seu framework pronto para ser usado.
Nos próximos posts devo entrar em usos mais específicos de Zend_Db e Zend_View para podermos enfim criar aplicações mais “ricas”.
outubro 14th, 2009 at 22:06 #Bruno Croci
Opaaa! Ótimo artigo.
O ZF sempre me surpreende.
P.S.: Adorei o Layout do Blog, não tinha visto ainda! Ficou massa! =D
outubro 18th, 2009 at 13:31 #Edson Reis
Olá, só para complementar se caso ao executar o zf create controller der o seguinte erro “Fatal error: Cannot redeclare class Zend_Loader”
Edit o arquivo application\configs\config\application.inie comente a linha
includePaths.library = APPLICATION_PATH “/../library”
deve ficar assim:
;includePaths.library = APPLICATION_PATH “/../library”
Abraços,
Edson Reis
outubro 25th, 2009 at 0:55 #Continuando no Zend Framework 1.9: Zend_View - Diego Jeronymo
[...] que uma continuação do post passado, vou abordar um pouco mais do Zend_View, o componente do Zend Framework responsável pela camada de [...]
outubro 27th, 2009 at 16:53 #André Manoel
Olá Diego,
Eu tentei executar a seguinte linha do seu artigo
e me gerou este erro
C:\xampp\htdocs\teste_zend>zf create controller usuario
An Error Has Occurred
A project profile was not found.
Zend Framework Command Line Console Tool v1.9.0
Details for action "Create" and provider "Controller"
Controller
zf create controller name index-action-included[=1] module
como posso corrigir isso?
outubro 27th, 2009 at 17:30 #Diego Jeronymo
Olá André,
Vejo que você está executando com o Zend Framework 1.9.0: recomendo baixar a versão mais nova. Já vi muitas pessoas reclamando que o Zend_Tool dessa versão não funciona corretamente em Windows.
Se mesmo em uma versão mais nova ocorrer esse erro, certifique-se que está executando dentro da pasta do projeto e que o arquivo .zfproject.xml está na raiz do projeto.
Abraços!
novembro 4th, 2009 at 0:21 #Robson
Cara ta impossivel começar no Zend 1.9, eu crio o projeto e não roda por nada a porcaria. diz que não acha o aplication, independente do q eu faça não roda cara, eu ja tentei Milhares de coisas.
flw
novembro 12th, 2009 at 15:19 #Renato Dehnhardt
Opa tudo tranquilo!
Olha só
essa linha aqui nao tem efeito algum sobre o meu projeto.
resources.layout.layoutPath = APPLICATION_PATH “/layouts/scripts”
Preciso muito setar o path dos layouts e nao rola!
Fica sempre dentro de:
modules
—-modulo1
——–views
————scripts
—————-layout.phtml
fevereiro 22nd, 2010 at 16:03 #PHP – Instalando e Iniciando o Framework Zend « Java Vs C#
[...] PHP – Instalando e Iniciando o Framework Zend Para instalar o framework Zend para PHP, basta acessar este link: Clique aqui… [...]
fevereiro 23rd, 2010 at 11:58 #Guilherme Siquinelli
Ae Pessoal,
Percebi que alguns de vocês estão com problemas ao criar controladores.
Estou usando a versão 1.10 e estava ocorrendo o mesmo problema. No meu caso era porque eu não estava dentro do diretório do projeto.
Tente acessar o diretório do projeto e depois executar o comando..
zf create controller nome_controlador 1
o 1 serve para criar o indexAction dentro do novo controlador.
Espero que tenha ajudado,
Valeu!
[]s