Usando Zend_Tool na Linha de Comando
O CLI, ou ferramenta de linha de comando (internamente conhecida como ferramenta de console),
é a principal interface para envio de requisições Zend_Tool.
Com a ferramenta CLI, desenvolvedores podem emitir requisições para a ferramenta
dentro da "janela de linha de comando", também comumente conhecida como uma janela do "terminal". Este
ambiente é predominante em um contexto *nix, porem tem uma implementação comum
no windows com o cmd.exe, console2 e também com o projeto Cygwin.
Instalação
Download E Siga
Primeiro faça o download do Zend Framework. Isto pode ser feito indo em framework.zend.com
e fazendo download do último release. Depois que você fez o download do pacote e colocou-o
no seu sistem. O próximo passo é deixar o comando zf disponível para seu sistema
O caminho mais fácil de fazer isso, é copiar os próprios arquivos do diretório bin/
do download, e colocar esses arquivos no mesmo diretório local do
binário do cli PHP.
Instalação Via Pear
Para instalar via PEAR, você deve usar o site de terceiros zfcampus.org para obter o
último pacote PEAR do Zend Framework. Estes pacotes são tipicamente construídos dentro
de um dia de um release oficial do Zend Framework. O benefício da instalação via gerenciador
de pacotes PEAR é que durante o processo de instalação, a biblioteca ZF vai acabar no
include_path, e os scripts zf.php e zf scripts irão acabar em um lugar no seu sistema
que vai permitir executar-los sem nenhuma configuração adicional.
É isto. Depois de instalação inicial, você deve ser capaz de continuar executando
o comando zf. Uma boa maneira para ver se está tudo certo é executar o zf --help
Instalação na Mão
Instalação na mão refere-se ao processo de forçar o zf.php e a biblioteca Zend Framework
a trabalhar juntas quando elas são colocadas em lugares não-convencionais, ou pelo menos,
em um lugar que seu sistema não pode dispachar facilmente (típico de programas no PATH
do seu sistema).
Se você está em um sistema *nix ou mac, você pode também criar um link de algum lugar
no seu path para o arquivo zf.sh. Se fizer isso, você não precisa se preocupar em ter
a biblioteca Zend Framework no seu include_path, como os arquivos zf.php e zf.sh serão
capazes de acessar a biblioteca em relação a onde elas estão (significa que os arquivos
no ./bin/ são ../library/ relativos a biblioteca Zend Framework).
Existe um número de outras opções disponíveis para configurar o zf.php e a biblioteca
no seu sistema. Essas opções giram em torno da definição de variáveis específicas de
ambiente. Estas serão descritas mais tarde na seção "customizando o ambiente CLI". As
variáveis de ambiente para configurar o zf.php no include_path, ZF_INCLUDE_PATH e
ZF_INCLUDE_PATH_PREPEND, são as mais interessantes.
Comandos de Propósito General
Version
Isto mostrará o número da versão corrente da cópia do Zend Framework que a ferramenta
zf.php está usando.
Help Embutido
O sistema de help embutido é o primeiro lugar onde você pode obter informações atualizadas
sobre o que o seu sistema é capaz de fazer. O sistema de help é dinâmico pois como
os providers são adicionados ao seus sistema, eles são automaticamente executáveis,
bem como, os parametros necessários para executar-los estarão na tela de ajuda. O caminho
mais fácil de obter a tela de ajuda é o seguinte:
Isto dará a você uma visão geral de várias capacidades do sistema.
Algumas vezes, existem mais comandos expecíficos que podem ser executados, e para ter
mas informações sobre eles, você pode ter que rodar mais um comando de help especializado.
Para um help especializado, simplesmente substitua qualquer um dos elementos do comando
por uma "?". Isto dirá ao sistema de help que você quer mais informações sobre que
comandos podem ir no lugar da interrogação. Por exemplo:
O acima exposto significa "mostre-me todos os 'actions' do provider 'controller'";
enquanto o seguinte:
significa "mostre-me todos os providers que suportam a action 'show'". Isso funciona
para as opções do exemplo a baixo, bem como você pode ver nos exemplos a seguir:
Manifest
Isto irá mostrar o que existe no manifest das ferramentas do sistema. Isso é mais importante
para os desenvolvedores de provider do que para usuários casuais das ferramentas do sistema.
Comandos Específicos do Projeto
Project
O provider project é o primeiro comando que você deve querer rodar. Ele irá configurar a
estrutura básica da sua aplicação. Isto é necessário antes de qualquer dos outros
providers pode serem executado.
Isso irá criar um projeto em um diretório chamado ./MyProjectName. A partir deste ponto,
é importante notar que qualquer dos comandos subseqüentes na linha de comando deve ser
executado de dentro do diretório do projeto que você acabou de criar. Assim, após a criação,
a mudança de diretório é necessária.
Module
O provider module permite a fácil criação de um modulo Zend Framework. Um
um módulo segue ligeiramente o padrão hMVC. Ao criar módulos, levamos a mesma
estrutura usada no nível application/, e duplicamos dentro do nome escolhido
para o seu módulo, dentro do diretório "modules" do diretório application/
sem duplicar o diretório de modules em si. Por exemplo:
Isto irá criar um módulo chamado Blog em application/modules/Blog, e todos os artefatos
que o módulo irá precisar.
Controller
O privider controller é responsável por criar (principalmente) controllers vazios bem
como seus correspondentes diretórios dos script de view e os arquivos. Para utiliza-lo
crie um 'Auth' controlller, por exemplo, execute:
Isto irá criar um controller chamado Auth, expecificamente criará um arquivo em
application/controllers/AuthController.php com AuthController dentro.
Se você quiser criar um controller para um módulo, use qualquer dos seguintes comandos:
Note: No primeiro comando, 1 é o valor para a flag "includeIndexAction".
Action
Para criar uma action dentro de um controller existente:
View
Para criar uma view fora do controller/action corrente, você poderia
usar um dos seguintess comandos:
Isto irá criar um script de view na pasta do controller Auth.
Model
O provider model é apenas responsável por criar os arquivos de modelo de forma adequada,
com o próprio nome dentro da pasta application. Por exemplo
Se você deseja criar um model dentro de um módulo específico:
O comando a cima cria um model 'Post' dentro do módulo 'Blog'.
Form
O provider form é apenas responsável por criar o arquivo e o
método init() de forma adequada, com o nome adequado dentro da pasta application. Por exemplo:
Se você deseja criar um model dentro de um módulo expecífico:
O comando acima criará o form 'Comment' dentro do módulo 'Blog'.
DbAdapter
Parar configurar um DbAdapter, você precisará fornecer informações como uma
string de url codificada. As strings precisam estar com aspas na linha de comando.
Por exemplo, para digitar as seguintes informações:
adapter: Pdo_Mysql
username: test
password: test
dbname: test
O seguinte comando terá que ser rodado na linha de comando:
Isto assume que você deseja armazenar estas informações no
espaço de 'production' do arquivo de configuração da aplicação. O comando seguinte
irá demonstrar uma configuração para sqlite, na sessão 'development' do arquivo de
configuração da aplicação.
DbTable
O provider DbTable é responsável por criar arquivos de modelo
Zend_Db_Table/dados de acesso para a sua aplicação consumir,
com o nome da classe adequada e em local apropriado na aplicação.
As duas importantes peças de informação são o nome da DbTable,
e o nome da tabela atual banco de dados. Por exemplo:
O provider DbTable é também capaz de criar os arquivos apropriadamente
mapeando o banco de dados configurado com o provider DbAdapter abaixo.
Ao executar o acima exposto, pode ser fazer sentido usar primeiro a flag de simulação
"-p" para que você possa ver o que seria feito, e que tablelas podem
ser encontradas no banco da dados.
Layout
Atualmente, a única ação suportada para layout é simplesmente permitir-lhes,
então configurar apropriadamente o arquivo application.ini para o aplicativo trabalhar,
e criar os diretórios e arquivos layout.phtml.
Personalização do Ambiente
O Storage Directory
O storage directory é importante para que os providers poderem ter um lugar para encontrar
a lógica do usuário personalizada gerada que pode mudar a maneira como eles se comportam.
Um exemplo pode ser encontrado abaixo é a colocação de um arquivo profile do projeto.
O Arquivo de Configuração
Isto irá criar o arquivo zf.ini adequado. Este deve
ser executado após zf --setup storage-directory. Se não for,
será localizado dentro do diretório home do usuário. Se for, ele será localizado
dentro do storage directory do usuário.
Environment Locations
Estes devem ser configurados, se você deseja substituir os locais padrão onde o zf
tentará de ler os seus valores.
ZF_HOME
o diretório onde a ferramenta irá procurar um diretório home
o diretório deve existir
ordem de pesquisa:
variável de ambiente ZF_HOME
variável de ambiente HOME
então a variável de ambiente HOMEPATH
ZF_STORAGE_DIRECTORY
onde esta ferramenta vai procurar por um storage directory
o diretório deve existir
ordem de pesquisa:
variável de ambiente ZF_STORAGE_DIRECTORY
diretório $homeDirectory/.zf/
ZF_CONFIG_FILE
onde esta ferramenta vai procurar pelo arquivo de configuração
ordem de pesquisa:
variável de ambiente ZF_CONFIG_FILE
se existir o arquivo $homeDirectory/.zf.ini
se existir o arquivo $storageDirectory/zf.ini
ZEND_TOOL_INCLUDE_PATH
configura o include_path para esta ferramenta usar este valor
comportamento original:
usa o include_path do PHP para procurar o ZF
usa a variável de ambiente ZEND_TOOL_INCLUDE_PATH
usa o caminho ../library (relativo para zf.php) para procurar o ZF
ZF_TOOL_INCLUDE_PATH_PREPEND
precede o php.ini include_path atual com este valor