|
|
@@ -1,5 +1,5 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!-- EN-Revision: 17136 -->
|
|
|
+<!-- EN-Revision: 20765 -->
|
|
|
<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.controller.basics">
|
|
|
<title>O Básico de Zend_Controller</title>
|
|
|
@@ -28,149 +28,149 @@
|
|
|
estes componentes do sistema, ter um conhecimento básico do processo é útil.
|
|
|
</para>
|
|
|
|
|
|
- <itemizedlist>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <classname>Zend_Controller_Front</classname> orquestra todo o processo do
|
|
|
- sistema <classname>Zend_Controller</classname>. Ele é o interpretador do
|
|
|
- padrão FrontController. <classname>Zend_Controller_Front</classname> processa
|
|
|
- todas as requisições recebidas pelo servidor e é o responsável direto pela
|
|
|
- delegação dos pedidos dos ActionControllers
|
|
|
- (<classname>Zend_Controller_Action</classname>).
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <classname>Zend_Controller_Request_Abstract</classname> (muitas vezes chamado
|
|
|
- de <emphasis>Request Object</emphasis>) representa o ambiente de pedido e
|
|
|
- fornece métodos para colocação e recuperação do controlador e nomes de ações
|
|
|
- e qualquer parâmetros passados. Adicionalmente ele guarda o registro de que a
|
|
|
- ação foi despachada ou não pelo
|
|
|
- <classname>Zend_Controller_Dispatcher</classname>. Extensões do objeto de
|
|
|
- requisição abstrata podem ser usadas para encapsular todo o ambiente de
|
|
|
- requisição, permitindo aos roteadores colocarem informações no ambiente de
|
|
|
- requisição para estabelecer o controlador e nomes de ação.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Por padrão, <classname>Zend_Controller_Request_Http</classname> é usado, para
|
|
|
- fornecer acesso a todo o ambiente de pedido de <acronym>HTTP</acronym>.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <classname>Zend_Controller_Router_Interface</classname> é usado para definir
|
|
|
- os roteadores. Roteamento é o processo de examinação da requisição do ambiente
|
|
|
- para determinar qual controlador e ação do controlador, devem receber a
|
|
|
- requisição. Este controlador, ação e parâmetros opcionais são incluídos no
|
|
|
- objeto de requisição para serem processados pelo
|
|
|
- <classname>Zend_Controller_Dispatcher_Standard</classname>. O roteamento
|
|
|
- ocorre somente uma vez: quando a requisição é inicialmente recebida e antes
|
|
|
- do primeiro controlador ser despachado.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- O roteador padrão, <classname>Zend_Controller_Router_Rewrite</classname>, pega
|
|
|
- uma <acronym>URI</acronym> no ponto especificado em
|
|
|
- <classname>Zend_Controller_Request_Http</classname> e a decompõe em um
|
|
|
- controlador, ação e parâmetros baseado na informação do caminho da
|
|
|
- <acronym>URL</acronym>. Por exemplo, a <acronym>URL</acronym>
|
|
|
- <filename>http://localhost/foo/bar/key/value</filename> pode ser decomposta
|
|
|
- para usar o controlador <emphasis>foo</emphasis>, a ação
|
|
|
- <emphasis>bar</emphasis>, e o parâmetro especificado <emphasis>key</emphasis>
|
|
|
- com o valor igual a <emphasis>value</emphasis>.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- <classname>Zend_Controller_Router_Rewrite</classname> também pode ser usado
|
|
|
- para combinar caminhos arbitrários; veja a <link
|
|
|
- linkend="zend.controller.router">documentação do roteador</link>
|
|
|
- para mais informações.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <classname>Zend_Controller_Dispatcher_Interface</classname> é usado para
|
|
|
- definir despachantes. Despachar é o processo de pegar o controlador e a ação
|
|
|
- do objeto de requisição e mapeá-lo para um arquivo de um controlador (ou
|
|
|
- classe) e método de ação na classe do controlador. Se o controlador ou ação
|
|
|
- não existir, ele determina o controlador e ação padrão para despachar.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- O processo atual de despacho consiste em instanciar a classe do controlador e
|
|
|
- chamar o método de ação nesta classe. Diferente do roteamento, que ocorre
|
|
|
- somente uma vez, o despacho ocorre em um laço. Se o status do objeto de
|
|
|
- requisição despachado é reiniciado em algum ponto, o laço irá se repetir,
|
|
|
- chamando qualquer ação atualmente estabelecida no objeto de requisição. A
|
|
|
- primeira vez que o laço do objeto de requisição terminar com o status ativado
|
|
|
- (<type>Boolean</type> <constant>TRUE</constant>), ele irá finalizar
|
|
|
- o processo.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- O despachador padrão é o
|
|
|
- <classname>Zend_Controller_Dispatcher_Standard</classname>. Ele define os
|
|
|
- controladores como MixedCasedClasses terminados com a palavra Controller, e os
|
|
|
- métodos de ações como camelCasedMethods terminadas com a palavra Action:
|
|
|
- <methodname>FooController::barAction()</methodname>. Neste caso, o controlador
|
|
|
- será chamado como <emphasis>foo</emphasis> e a ação como
|
|
|
- <emphasis>bar</emphasis>.
|
|
|
- </para>
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Controller_Front</classname> orquestra todo o processo do
|
|
|
+ sistema <classname>Zend_Controller</classname>. Ele é o interpretador do
|
|
|
+ padrão FrontController. <classname>Zend_Controller_Front</classname> processa
|
|
|
+ todas as requisições recebidas pelo servidor e é o responsável direto pela
|
|
|
+ delegação dos pedidos dos ActionControllers
|
|
|
+ (<classname>Zend_Controller_Action</classname>).
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Controller_Request_Abstract</classname> (muitas vezes chamado
|
|
|
+ de <emphasis>Request Object</emphasis>) representa o ambiente de pedido e
|
|
|
+ fornece métodos para colocação e recuperação do controlador e nomes de ações
|
|
|
+ e qualquer parâmetros passados. Adicionalmente ele guarda o registro de que a
|
|
|
+ ação foi despachada ou não pelo
|
|
|
+ <classname>Zend_Controller_Dispatcher</classname>. Extensões do objeto de
|
|
|
+ requisição abstrata podem ser usadas para encapsular todo o ambiente de
|
|
|
+ requisição, permitindo aos roteadores colocarem informações no ambiente de
|
|
|
+ requisição para estabelecer o controlador e nomes de ação.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Por padrão, <classname>Zend_Controller_Request_Http</classname> é usado, para
|
|
|
+ fornecer acesso a todo o ambiente de pedido de <acronym>HTTP</acronym>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Controller_Router_Interface</classname> é usado para definir
|
|
|
+ os roteadores. Roteamento é o processo de examinação da requisição do ambiente
|
|
|
+ para determinar qual controlador e ação do controlador, devem receber a
|
|
|
+ requisição. Este controlador, ação e parâmetros opcionais são incluídos no
|
|
|
+ objeto de requisição para serem processados pelo
|
|
|
+ <classname>Zend_Controller_Dispatcher_Standard</classname>. O roteamento
|
|
|
+ ocorre somente uma vez: quando a requisição é inicialmente recebida e antes
|
|
|
+ do primeiro controlador ser despachado.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ O roteador padrão, <classname>Zend_Controller_Router_Rewrite</classname>, pega
|
|
|
+ uma <acronym>URI</acronym> no ponto especificado em
|
|
|
+ <classname>Zend_Controller_Request_Http</classname> e a decompõe em um
|
|
|
+ controlador, ação e parâmetros baseado na informação do caminho da
|
|
|
+ <acronym>URL</acronym>. Por exemplo, a <acronym>URL</acronym>
|
|
|
+ <filename>http://localhost/foo/bar/key/value</filename> pode ser decomposta
|
|
|
+ para usar o controlador <emphasis>foo</emphasis>, a ação
|
|
|
+ <emphasis>bar</emphasis>, e o parâmetro especificado <emphasis>key</emphasis>
|
|
|
+ com o valor igual a <emphasis>value</emphasis>.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Controller_Router_Rewrite</classname> também pode ser usado
|
|
|
+ para combinar caminhos arbitrários; veja a <link
|
|
|
+ linkend="zend.controller.router">documentação do roteador</link>
|
|
|
+ para mais informações.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Controller_Dispatcher_Interface</classname> é usado para
|
|
|
+ definir despachantes. Despachar é o processo de pegar o controlador e a ação
|
|
|
+ do objeto de requisição e mapeá-lo para um arquivo de um controlador (ou
|
|
|
+ classe) e método de ação na classe do controlador. Se o controlador ou ação
|
|
|
+ não existir, ele determina o controlador e ação padrão para despachar.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ O processo atual de despacho consiste em instanciar a classe do controlador e
|
|
|
+ chamar o método de ação nesta classe. Diferente do roteamento, que ocorre
|
|
|
+ somente uma vez, o despacho ocorre em um laço. Se o status do objeto de
|
|
|
+ requisição despachado é reiniciado em algum ponto, o laço irá se repetir,
|
|
|
+ chamando qualquer ação atualmente estabelecida no objeto de requisição. A
|
|
|
+ primeira vez que o laço do objeto de requisição terminar com o status ativado
|
|
|
+ (<type>Boolean</type> <constant>TRUE</constant>), ele irá finalizar
|
|
|
+ o processo.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ O despachador padrão é o
|
|
|
+ <classname>Zend_Controller_Dispatcher_Standard</classname>. Ele define os
|
|
|
+ controladores como MixedCasedClasses terminados com a palavra Controller, e os
|
|
|
+ métodos de ações como camelCasedMethods terminadas com a palavra Action:
|
|
|
+ <methodname>FooController::barAction()</methodname>. Neste caso, o controlador
|
|
|
+ será chamado como <emphasis>foo</emphasis> e a ação como
|
|
|
+ <emphasis>bar</emphasis>.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>Convenções de Nomenclatura para Maiúsculas e Minúsculas</title>
|
|
|
|
|
|
- <note>
|
|
|
- <title>Convenções de Nomenclatura para Maiúsculas e Minúsculas</title>
|
|
|
-
|
|
|
- <para>
|
|
|
- Desde que os seres humanos são notoriamente incapazes de preservar
|
|
|
- maiúsculas e minúsculas ao digitar links, o Zend Framework atualmente
|
|
|
- normaliza as informações sobre o caminho para minúsculas. Isto,
|
|
|
- naturalmente, afetará a forma como você nomeia o seu controlador e suas
|
|
|
- ações... ou referir-se a eles em links.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Se você deseja que o nome de seu controlador de classe ou do método de ação
|
|
|
- tenham múltiplas MixedCasedWords ou camelCasedWords, você precisará, para
|
|
|
- separar as palavras na url, um '-' ou '.' (embora você pode configurar o
|
|
|
- caractere utilizado).
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Por exemplo, se você estava indo para a ação em
|
|
|
- <methodname>FooBarController::bazBatAction()</methodname>, você irá se
|
|
|
- referir a ela em uma url como <filename>/foo-bar/baz-bat</filename> ou
|
|
|
- <filename>/foo.bar/baz.bat</filename>.
|
|
|
- </para>
|
|
|
- </note>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
<para>
|
|
|
- <classname>Zend_Controller_Action</classname> é o componente base do
|
|
|
- controlador de ação. Cada controlador é uma classe única que extende a classe
|
|
|
- <classname>Zend_Controller_Action</classname> e deve conter um ou
|
|
|
- mais métodos de ação.
|
|
|
+ Desde que os seres humanos são notoriamente incapazes de preservar
|
|
|
+ maiúsculas e minúsculas ao digitar links, o Zend Framework atualmente
|
|
|
+ normaliza as informações sobre o caminho para minúsculas. Isto,
|
|
|
+ naturalmente, afetará a forma como você nomeia o seu controlador e suas
|
|
|
+ ações... ou referir-se a eles em links.
|
|
|
</para>
|
|
|
- </listitem>
|
|
|
|
|
|
- <listitem>
|
|
|
<para>
|
|
|
- <classname>Zend_Controller_Response_Abstract</classname> define a classe básica
|
|
|
- de resposta usada para coletar e retornar repostas dos controladores de ação.
|
|
|
- Ela coleta tanto cabeçalhos como conteúdos de corpo.
|
|
|
+ Se você deseja que o nome de seu controlador de classe ou do método de ação
|
|
|
+ tenham múltiplas MixedCasedWords ou camelCasedWords, você precisará, para
|
|
|
+ separar as palavras na url, um '-' ou '.' (embora você pode configurar o
|
|
|
+ caractere utilizado).
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- A classe de resposta padrão é
|
|
|
- <classname>Zend_Controller_Response_Http</classname>, que é conveniente para
|
|
|
- uso em um ambiente <acronym>HTTP</acronym>.
|
|
|
+ Por exemplo, se você estava indo para a ação em
|
|
|
+ <methodname>FooBarController::bazBatAction()</methodname>, você irá se
|
|
|
+ referir a ela em uma url como <filename>/foo-bar/baz-bat</filename> ou
|
|
|
+ <filename>/foo.bar/baz.bat</filename>.
|
|
|
</para>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
+ </note>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Controller_Action</classname> é o componente base do
|
|
|
+ controlador de ação. Cada controlador é uma classe única que extende a classe
|
|
|
+ <classname>Zend_Controller_Action</classname> e deve conter um ou
|
|
|
+ mais métodos de ação.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Controller_Response_Abstract</classname> define a classe básica
|
|
|
+ de resposta usada para coletar e retornar repostas dos controladores de ação.
|
|
|
+ Ela coleta tanto cabeçalhos como conteúdos de corpo.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ A classe de resposta padrão é
|
|
|
+ <classname>Zend_Controller_Response_Http</classname>, que é conveniente para
|
|
|
+ uso em um ambiente <acronym>HTTP</acronym>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
O processo do <classname>Zend_Controller</classname> é relativamente simples. Uma
|