Zend_Tool-Usage-CLI.xml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24333 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.tool.usage.cli">
  5. <title>Usando Zend_Tool na Linha de Comando</title>
  6. <para>
  7. O <acronym>CLI</acronym>, ou ferramenta de linha de comando (internamente conhecida como ferramenta de console),
  8. é a principal interface para envio de requisições <classname>Zend_Tool</classname>.
  9. Com a ferramenta <acronym>CLI</acronym>, desenvolvedores podem emitir requisições para a ferramenta
  10. dentro da "janela de linha de comando", também comumente conhecida como uma janela do "terminal". Este
  11. ambiente é predominante em um contexto *nix, porem tem uma implementação comum
  12. no windows com o <filename>cmd.exe</filename>, console2 e também com o projeto Cygwin.
  13. </para>
  14. <!--
  15. <sect2 id="zend.tool.usage.cli.introduction">
  16. <title>Introduction</title>
  17. </sect2>
  18. -->
  19. <sect2 id="zend.tool.usage.cli.installation">
  20. <title>Instalação</title>
  21. <sect3 id="zend.tool.usage.cli.installation.download-and-go">
  22. <title>Download E Siga</title>
  23. <para>
  24. Primeiro faça o download do Zend Framework. Isto pode ser feito indo em framework.zend.com
  25. e fazendo download do último release. Depois que você fez o download do pacote e colocou-o
  26. no seu sistem. O próximo passo é deixar o comando zf disponível para seu sistema
  27. O caminho mais fácil de fazer isso, é copiar os próprios arquivos do diretório bin/
  28. do download, e colocar esses arquivos no <emphasis>mesmo</emphasis> diretório local do
  29. binário do cli <acronym>PHP</acronym>.
  30. </para>
  31. </sect3>
  32. <sect3 id="zend.tool.usage.cli.installation.pear">
  33. <title>Instalação Via Pear</title>
  34. <para>
  35. Para instalar via PEAR, você deve usar o site de terceiros zfcampus.org para obter o
  36. último pacote PEAR do Zend Framework. Estes pacotes são tipicamente construídos dentro
  37. de um dia de um release oficial do Zend Framework. O benefício da instalação via gerenciador
  38. de pacotes PEAR é que durante o processo de instalação, a biblioteca ZF vai acabar no
  39. include_path, e os scripts zf.php e zf scripts irão acabar em um lugar no seu sistema
  40. que vai permitir executar-los sem nenhuma configuração adicional.
  41. </para>
  42. <programlisting language="text"><![CDATA[
  43. pear discover-channel pear.zfcampus.org
  44. pear install zfcampus/zf
  45. ]]></programlisting>
  46. <para>
  47. É isto. Depois de instalação inicial, você deve ser capaz de continuar executando
  48. o comando zf. Uma boa maneira para ver se está tudo certo é executar o zf --help
  49. </para>
  50. </sect3>
  51. <sect3 id="zend.tool.usage.cli.installation.install-by-hand">
  52. <title>Instalação na Mão</title>
  53. <para>
  54. Instalação na mão refere-se ao processo de forçar o zf.php e a biblioteca Zend Framework
  55. a trabalhar juntas quando elas são colocadas em lugares não-convencionais, ou pelo menos,
  56. em um lugar que seu sistema não pode dispachar facilmente (típico de programas no PATH
  57. do seu sistema).
  58. </para>
  59. <para>
  60. Se você está em um sistema *nix ou mac, você pode também criar um link de algum lugar
  61. no seu path para o arquivo zf.sh. Se fizer isso, você não precisa se preocupar em ter
  62. a biblioteca Zend Framework no seu include_path, como os arquivos zf.php e zf.sh serão
  63. capazes de acessar a biblioteca em relação a onde elas estão (significa que os arquivos
  64. no ./bin/ são ../library/ relativos a biblioteca Zend Framework).
  65. </para>
  66. <para>
  67. Existe um número de outras opções disponíveis para configurar o zf.php e a biblioteca
  68. no seu sistema. Essas opções giram em torno da definição de variáveis específicas de
  69. ambiente. Estas serão descritas mais tarde na seção "customizando o ambiente CLI". As
  70. variáveis de ambiente para configurar o zf.php no include_path, ZF_INCLUDE_PATH e
  71. ZF_INCLUDE_PATH_PREPEND, são as mais interessantes.
  72. </para>
  73. </sect3>
  74. </sect2>
  75. <sect2 id="zend.tool.usage.cli.general-purpose-commands">
  76. <title>Comandos de Propósito General</title>
  77. <sect3 id="zend.tool.usage.cli.general-purpose-commands.version">
  78. <title>Version</title>
  79. <para>
  80. Isto mostrará o número da versão corrente da cópia do Zend Framework que a ferramenta
  81. zf.php está usando.
  82. </para>
  83. <programlisting language="text"><![CDATA[
  84. zf show version
  85. ]]></programlisting>
  86. </sect3>
  87. <sect3 id="zend.tool.usage.cli.general-purpose-commands.built-in-help">
  88. <title>Help Embutido</title>
  89. <para>
  90. O sistema de help embutido é o primeiro lugar onde você pode obter informações atualizadas
  91. sobre o que o seu sistema é capaz de fazer. O sistema de help é dinâmico pois como
  92. os providers são adicionados ao seus sistema, eles são automaticamente executáveis,
  93. bem como, os parametros necessários para executar-los estarão na tela de ajuda. O caminho
  94. mais fácil de obter a tela de ajuda é o seguinte:
  95. </para>
  96. <programlisting language="text"><![CDATA[
  97. zf --help
  98. ]]></programlisting>
  99. <para>
  100. Isto dará a você uma visão geral de várias capacidades do sistema.
  101. Algumas vezes, existem mais comandos expecíficos que podem ser executados, e para ter
  102. mas informações sobre eles, você pode ter que rodar mais um comando de help especializado.
  103. Para um help especializado, simplesmente substitua qualquer um dos elementos do comando
  104. por uma "?". Isto dirá ao sistema de help que você quer mais informações sobre que
  105. comandos podem ir no lugar da interrogação. Por exemplo:
  106. </para>
  107. <programlisting language="text"><![CDATA[
  108. zf ? controller
  109. ]]></programlisting>
  110. <para>
  111. O acima exposto significa "mostre-me todos os 'actions' do provider 'controller'";
  112. enquanto o seguinte:
  113. </para>
  114. <programlisting language="text"><![CDATA[
  115. zf show ?
  116. ]]></programlisting>
  117. <para>
  118. significa "mostre-me todos os providers que suportam a action 'show'". Isso funciona
  119. para as opções do exemplo a baixo, bem como você pode ver nos exemplos a seguir:
  120. </para>
  121. <programlisting language="text"><![CDATA[
  122. zf show version.? (mostra todas as especialidades)
  123. zf show version ? (mostra todas as opções)
  124. ]]></programlisting>
  125. </sect3>
  126. <sect3 id="zend.tool.usage.cli.general-purpose-commands.manifest">
  127. <title>Manifest</title>
  128. <para>
  129. Isto irá mostrar o que existe no manifest das ferramentas do sistema. Isso é mais importante
  130. para os desenvolvedores de provider do que para usuários casuais das ferramentas do sistema.
  131. </para>
  132. <programlisting language="text"><![CDATA[
  133. zf show manifest
  134. ]]></programlisting>
  135. </sect3>
  136. <!--
  137. <sect3 id="zend.tool.usage.cli.general-purpose-commands.tool-configuration">
  138. <title>Tool Configuration</title>
  139. <para>Placeholder need docs from @beberli </para>
  140. </sect3>
  141. -->
  142. </sect2>
  143. <sect2 id="zend.tool.usage.cli.project-specific-commands">
  144. <title>Comandos Específicos do Projeto</title>
  145. <sect3 id="zend.tool.usage.cli.project-specific-commands.project">
  146. <title>Project</title>
  147. <para>
  148. O provider project é o primeiro comando que você deve querer rodar. Ele irá configurar a
  149. estrutura básica da sua aplicação. Isto é necessário antes de qualquer dos outros
  150. providers pode serem executado.
  151. </para>
  152. <programlisting language="text"><![CDATA[
  153. zf create project MyProjectName
  154. ]]></programlisting>
  155. <para>
  156. Isso irá criar um projeto em um diretório chamado ./MyProjectName. A partir deste ponto,
  157. é importante notar que qualquer dos comandos subseqüentes na linha de comando deve ser
  158. executado de dentro do diretório do projeto que você acabou de criar. Assim, após a criação,
  159. a mudança de diretório é necessária.
  160. </para>
  161. </sect3>
  162. <sect3 id="zend.tool.usage.cli.project-specific-commands.module">
  163. <title>Module</title>
  164. <para>
  165. O provider module permite a fácil criação de um modulo Zend Framework. Um
  166. um módulo segue ligeiramente o padrão hMVC. Ao criar módulos, levamos a mesma
  167. estrutura usada no nível application/, e duplicamos dentro do nome escolhido
  168. para o seu módulo, dentro do diretório "modules" do diretório application/
  169. sem duplicar o diretório de modules em si. Por exemplo:
  170. </para>
  171. <programlisting language="text"><![CDATA[
  172. zf create module Blog
  173. ]]></programlisting>
  174. <para>
  175. Isto irá criar um módulo chamado Blog em application/modules/Blog, e todos os artefatos
  176. que o módulo irá precisar.
  177. </para>
  178. </sect3>
  179. <sect3 id="zend.tool.usage.cli.project-specific-commands.controller">
  180. <title>Controller</title>
  181. <para>
  182. O privider controller é responsável por criar (principalmente) controllers vazios bem
  183. como seus correspondentes diretórios dos script de view e os arquivos. Para utiliza-lo
  184. crie um 'Auth' controlller, por exemplo, execute:
  185. </para>
  186. <programlisting language="text"><![CDATA[
  187. zf create controller Auth
  188. ]]></programlisting>
  189. <para>
  190. Isto irá criar um controller chamado Auth, expecificamente criará um arquivo em
  191. application/controllers/AuthController.php com AuthController dentro.
  192. Se você quiser criar um controller para um módulo, use qualquer dos seguintes comandos:
  193. </para>
  194. <programlisting language="text"><![CDATA[
  195. zf create controller Post 1 Blog
  196. zf create controller Post -m Blog
  197. zf create controller Post --module=Blog
  198. ]]></programlisting>
  199. <para>
  200. Note: No primeiro comando, 1 é o valor para a flag "includeIndexAction".
  201. </para>
  202. </sect3>
  203. <sect3 id="zend.tool.usage.cli.project-specific-commands.action">
  204. <title>Action</title>
  205. <para>
  206. Para criar uma action dentro de um controller existente:
  207. </para>
  208. <programlisting language="text"><![CDATA[
  209. zf create action login Auth
  210. zf create action login -c Auth
  211. zf create action login --controller-name=Auth
  212. ]]></programlisting>
  213. </sect3>
  214. <sect3 id="zend.tool.usage.cli.project-specific-commands.view">
  215. <title>View</title>
  216. <para>
  217. Para criar uma view fora do controller/action corrente, você poderia
  218. usar um dos seguintess comandos:
  219. </para>
  220. <programlisting language="text"><![CDATA[
  221. zf create view Auth my-script-name
  222. zf create view -c Auth -a my-script-name
  223. ]]></programlisting>
  224. <para>
  225. Isto irá criar um script de view na pasta do controller Auth.
  226. </para>
  227. </sect3>
  228. <sect3 id="zend.tool.usage.cli.project-specific-commands.model">
  229. <title>Model</title>
  230. <para>
  231. O provider model é apenas responsável por criar os arquivos de modelo de forma adequada,
  232. com o próprio nome dentro da pasta application. Por exemplo
  233. </para>
  234. <programlisting language="text"><![CDATA[
  235. zf create model User
  236. ]]></programlisting>
  237. <para>
  238. Se você deseja criar um model dentro de um módulo específico:
  239. </para>
  240. <programlisting language="text"><![CDATA[
  241. zf create model Post -m Blog
  242. ]]></programlisting>
  243. <para>
  244. O comando a cima cria um model 'Post' dentro do módulo 'Blog'.
  245. </para>
  246. </sect3>
  247. <sect3 id="zend.tool.usage.cli.project-specific-commands.form">
  248. <title>Form</title>
  249. <para>
  250. O provider form é apenas responsável por criar o arquivo e o
  251. método init() de forma adequada, com o nome adequado dentro da pasta application. Por exemplo:
  252. </para>
  253. <programlisting language="text"><![CDATA[
  254. zf create form Auth
  255. ]]></programlisting>
  256. <para>
  257. Se você deseja criar um model dentro de um módulo expecífico:
  258. </para>
  259. <programlisting language="text"><![CDATA[
  260. zf create form Comment -m Blog
  261. ]]></programlisting>
  262. <para>
  263. O comando acima criará o form 'Comment' dentro do módulo 'Blog'.
  264. </para>
  265. </sect3>
  266. <sect3 id="zend.tool.usage.cli.project-specific-commands.database-adapter">
  267. <title>DbAdapter</title>
  268. <para>
  269. Parar configurar um DbAdapter, você precisará fornecer informações como uma
  270. string de url codificada. As strings precisam estar com aspas na linha de comando.
  271. </para>
  272. <para>
  273. Por exemplo, para digitar as seguintes informações:
  274. <itemizedlist>
  275. <listitem>
  276. <para>adapter: Pdo_Mysql</para>
  277. </listitem>
  278. <listitem>
  279. <para>username: test</para>
  280. </listitem>
  281. <listitem>
  282. <para>password: test</para>
  283. </listitem>
  284. <listitem>
  285. <para>dbname: test </para>
  286. </listitem>
  287. </itemizedlist>
  288. O seguinte comando terá que ser rodado na linha de comando:
  289. </para>
  290. <programlisting language="text"><![CDATA[
  291. zf configure dbadapter "adapter=Pdo_Mysql&username=test&password=test&dbname=test"
  292. ]]></programlisting>
  293. <para>
  294. Isto assume que você deseja armazenar estas informações no
  295. espaço de 'production' do arquivo de configuração da aplicação. O comando seguinte
  296. irá demonstrar uma configuração para sqlite, na sessão 'development' do arquivo de
  297. configuração da aplicação.
  298. </para>
  299. <programlisting language="text"><![CDATA[
  300. zf configure dbadapter "adapter=Pdo_Sqlite&dbname=../data/test.db" development
  301. zf configure dbadapter "adapter=Pdo_Sqlite&dbname=../data/test.db" -s development
  302. ]]></programlisting>
  303. </sect3>
  304. <sect3 id="zend.tool.usage.cli.project-specific-commands.db-table">
  305. <title>DbTable</title>
  306. <para>
  307. O provider DbTable é responsável por criar arquivos de modelo
  308. <classname>Zend_Db_Table</classname>/dados de acesso para a sua aplicação consumir,
  309. com o nome da classe adequada e em local apropriado na aplicação.
  310. As duas importantes peças de informação são o <emphasis>nome da DbTable</emphasis>,
  311. e o <emphasis>nome da tabela atual banco de dados</emphasis>. Por exemplo:
  312. </para>
  313. <programlisting language="text"><![CDATA[
  314. zf create dbtable User user
  315. zf create dbtable User -a user
  316. // também aceita a opção force para sobreescrever arquivos existentes
  317. zf create dbtable User user -f
  318. zf create dbtable User user --force-overwrite
  319. ]]></programlisting>
  320. <para>
  321. O provider DbTable é também capaz de criar os arquivos apropriadamente
  322. mapeando o banco de dados configurado com o provider DbAdapter abaixo.
  323. </para>
  324. <programlisting language="text"><![CDATA[
  325. zf create dbtable.from-database
  326. ]]></programlisting>
  327. <para>
  328. Ao executar o acima exposto, pode ser fazer sentido usar primeiro a flag de simulação
  329. "-p" para que você possa ver o que seria feito, e que tablelas podem
  330. ser encontradas no banco da dados.
  331. </para>
  332. <programlisting language="text"><![CDATA[
  333. zf -p create dbtable.from-database
  334. ]]></programlisting>
  335. </sect3>
  336. <sect3 id="zend.tool.usage.cli.project-specific-commands.layout">
  337. <title>Layout</title>
  338. <para>
  339. Atualmente, a única ação suportada para layout é simplesmente permitir-lhes,
  340. então configurar apropriadamente o arquivo application.ini para o aplicativo trabalhar,
  341. e criar os diretórios e arquivos layout.phtml.
  342. </para>
  343. <programlisting language="text"><![CDATA[
  344. zf enable layout
  345. ]]></programlisting>
  346. </sect3>
  347. </sect2>
  348. <sect2 id="zend.tool.usage.cli.environment-customization">
  349. <title>Personalização do Ambiente</title>
  350. <sect3 id="zend.tool.usage.cli.environment-customization.storage-directory">
  351. <title>O Storage Directory</title>
  352. <para>
  353. O storage directory é importante para que os providers poderem ter um lugar para encontrar
  354. a lógica do usuário personalizada gerada que pode mudar a maneira como eles se comportam.
  355. Um exemplo pode ser encontrado abaixo é a colocação de um arquivo profile do projeto.
  356. </para>
  357. <programlisting language="text"><![CDATA[
  358. zf --setup storage-directory
  359. ]]></programlisting>
  360. </sect3>
  361. <sect3 id="zend.tool.usage.cli.environment-customization.configuration-file">
  362. <title>O Arquivo de Configuração</title>
  363. <para>
  364. Isto irá criar o arquivo zf.ini adequado. Este <emphasis> deve </emphasis>
  365. ser executado após <command>zf --setup storage-directory</command>. Se não for,
  366. será localizado dentro do diretório home do usuário. Se for, ele será localizado
  367. dentro do storage directory do usuário.
  368. </para>
  369. <programlisting language="text"><![CDATA[
  370. zf --setup config-file
  371. ]]></programlisting>
  372. </sect3>
  373. <sect3 id="zend.tool.usage.cli.environment-customization.environment-locations">
  374. <title>Environment Locations</title>
  375. <para>
  376. Estes devem ser configurados, se você deseja substituir os locais padrão onde o zf
  377. tentará de ler os seus valores.
  378. </para>
  379. <itemizedlist>
  380. <listitem>
  381. <para>ZF_HOME</para>
  382. <itemizedlist>
  383. <listitem>
  384. <para>o diretório onde a ferramenta irá procurar um diretório home</para>
  385. </listitem>
  386. <listitem><para>o diretório deve existir</para></listitem>
  387. <listitem>
  388. <para>ordem de pesquisa:</para>
  389. <itemizedlist>
  390. <listitem><para>variável de ambiente ZF_HOME</para></listitem>
  391. <listitem><para>variável de ambiente HOME</para></listitem>
  392. <listitem><para>então a variável de ambiente HOMEPATH</para></listitem>
  393. </itemizedlist>
  394. </listitem>
  395. </itemizedlist>
  396. </listitem>
  397. <listitem>
  398. <para>ZF_STORAGE_DIRECTORY</para>
  399. <itemizedlist>
  400. <listitem>
  401. <para>onde esta ferramenta vai procurar por um storage directory</para>
  402. </listitem>
  403. <listitem><para>o diretório deve existir</para></listitem>
  404. <listitem>
  405. <para>ordem de pesquisa:</para>
  406. <itemizedlist>
  407. <listitem>
  408. <para>variável de ambiente ZF_STORAGE_DIRECTORY</para>
  409. </listitem>
  410. <listitem><para>diretório $homeDirectory/.zf/</para></listitem>
  411. </itemizedlist>
  412. </listitem>
  413. </itemizedlist>
  414. </listitem>
  415. <listitem>
  416. <para>ZF_CONFIG_FILE</para>
  417. <itemizedlist>
  418. <listitem>
  419. <para>onde esta ferramenta vai procurar pelo arquivo de configuração</para>
  420. </listitem>
  421. <listitem>
  422. <para>ordem de pesquisa:</para>
  423. <itemizedlist>
  424. <listitem>
  425. <para>variável de ambiente ZF_CONFIG_FILE</para>
  426. </listitem>
  427. <listitem>
  428. <para>se existir o arquivo $homeDirectory/.zf.ini</para>
  429. </listitem>
  430. <listitem>
  431. <para>se existir o arquivo $storageDirectory/zf.ini</para>
  432. </listitem>
  433. </itemizedlist>
  434. </listitem>
  435. </itemizedlist>
  436. </listitem>
  437. <listitem>
  438. <para>ZEND_TOOL_INCLUDE_PATH</para>
  439. <itemizedlist>
  440. <listitem>
  441. <para>configura o include_path para esta ferramenta usar este valor</para>
  442. </listitem>
  443. <listitem>
  444. <para>comportamento original:</para>
  445. <itemizedlist>
  446. <listitem>
  447. <para>
  448. usa o include_path do <acronym>PHP</acronym> para procurar o ZF
  449. </para>
  450. </listitem>
  451. <listitem>
  452. <para>usa a variável de ambiente ZEND_TOOL_INCLUDE_PATH</para>
  453. </listitem>
  454. <listitem>
  455. <para>
  456. usa o caminho ../library (relativo para zf.php) para procurar o ZF
  457. </para>
  458. </listitem>
  459. </itemizedlist>
  460. </listitem>
  461. </itemizedlist>
  462. </listitem>
  463. <listitem>
  464. <para>ZF_TOOL_INCLUDE_PATH_PREPEND</para>
  465. <itemizedlist>
  466. <listitem>
  467. <para>precede o php.ini include_path atual com este valor</para>
  468. </listitem>
  469. </itemizedlist>
  470. </listitem>
  471. </itemizedlist>
  472. </sect3>
  473. </sect2>
  474. </sect1>