|
|
Zend_Controller é o coração do sistema MVC
do Zend Framework. MVC significa » Model-View-Controller
e é um padrão de projeto voltado para a separação da lógica de aplicação da lógica
de visualização. Zend_Controller_Front implementa o padrão
» Front
Controller, no qual todos os pedidos são interceptados pelo controlador
frontal e despachados individualmente para ações baseadas no
URL requerido.
O sistema Zend_Controller foi construído com a extensibilidade
em mente, tanto por derivação das classes existentes, como escrevendo novas classes
que implementam as várias interfaces e classes abstratas que formam a fundação da
família de classes controladoras, ou escrevendo plugins ou auxiliadores de ação para
aumentar ou manipular a funcionalidade do sistema.
Se você necessita de informações mais detalhadas, veja as seções seguintes. Se você quiser apenas começar rápido, continue lendo.
O primeiro passo é criar sua estrutura de arquivos. A estrutura típica é a seguinte:
application/
controllers/
IndexController.php
models/
views/
scripts/
index/
index.phtml
helpers/
filters/
html/
.htaccess
index.php
No seu servidor web, defina seu documento raiz para o diretório html/ da estrutura de arquivos acima mencionada.
Edite o arquivo html/.htaccess acima para ficar como:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Note: Saiba mais sobre o mod_rewrite
As regras de reescrita acima permitem o acesso a qualquer arquivo no documento raiz de seu host virtual. Se houver arquivos que você não quer expor desta maneira, você pode ser mais restritivo em suas regras. Vá até o site do Apache para » aprender mais sobre o mod_rewrite.
Se estiver usando o IIS 7.0, utilize o seguinte como sua configuração de reescrita:
As regras acima irão encaminhar os pedidos de recursos existentes (links simbólicos existentes, arquivos não vazios, ou diretórios não vazios) nesse sentido, e todos os outros pedidos para o controlador frontal.
Note:
As regras de reescrita acima são para o Apache, para exemplos de regras de reescrita de outros servidores web, consulte a documentação do roteador.
O arquivo de inicialização é a página onde passam todas as requisições -- html/index.php no caso. Abra o arquivo html/index.php em um editor de sua escolha e adicione o seguinte:
Zend_Controller_Front::run('/path/to/app/controllers');
Isto irá instanciar e despachar o controlador frontal, que irá encaminhar as requisições para os controladores de ação.
Antes de discutir sobre os controladores de ação, você deve primeiro entender como as requisições são roteadas no Zend Framework. Por padrão, o primeiro seguimento de um caminho de um URL aponta para um controlador, o segundo para uma ação. Por exemplo, dado o URL http://framework.zend.com/roadmap/components, o caminho é /roadmap/components, que irá apontar para o controlador roadmap e para a ação components. Se nenhuma ação for informada, a ação index é assumida, e se nenhum controlador for informado, o controlador index é assumido (seguindo a convenção do Apache que mapeia um DirectoryIndex automaticamente).
O despachador do Zend_Controller toma o valor do
controlador e mapeia-o para uma classe. Por padrão, ele pega o nome do
controlador, com a primeira letra em maiúsculo, e acrescenta a palavra
Controller. Sendo assim, em nosso exemplo acima, o
controlador roadmap é mapeado para a classe
RoadmapController.
Semelhantemente, o valor da ação é mapeado para um método da classe do controlador. Por padrão, o valor é transformado em letras minúsculas, e a palavra Action é acrescentada. Sendo assim, em nosso exemplo acima, a ação components torna-se componentsAction(), e o método final chamado é RoadmapController::componentsAction().
Então, seguindo em frente, vamos agora criar um controlador de ação padrão e um método de ação. Como mencionado anteriormente, o controlador padrão e a ação são ambos chamados index. Abra o arquivo application/controllers/IndexController.php, e introduza o seguinte:
/** Zend_Controller_Action */
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
}
}
O auxiliar de ação ViewRenderer é
habilitado por padrão. Isto significa que apenas definindo um método de ação
simples e o script de visão correspondente, você terá o seu conteúdo mostrador
imediatamente. Por padrão, Zend_View é usado como a camada
de Visualização do MVC. O ViewRenderer
faz alguma mágica, e usa o nome do controlador (ex.: index)
e o nome da ação atual (ex.: index) para determinar qual
modelo mostrar. Por padrão, modelos terminam com a extensão
.phtml, então isto significa que, no exemplo acima o modelo
index/index.phtml será mostrado. Adicionalmente, o
ViewRenderer automaticamente assume que o diretório
views/, que está no mesmo nível que do diretório do
controlador, será o diretório base de visualização, e que o atual script de
visualização estará no subdiretório views/scripts/, Sendo
assim, o modelo mostrado é encontrado em
application/views/scripts/index/index.phtml.
Com mensionado na seção anterior, scripts de visualização são encontrados em application/views/scripts/; O script padrão para o controlador e ação padrão está em application/views/scripts/index/index.phtml. Crie este arquivo e escreva nele algum HTML:
Meu primeiro aplicativo em Zend Framework Olá, Mundo!
Por padrão, o plugin do manipulador de erro é registrado. Este plugin espera que um controlador para manipular erros exista. Por padrão, ele assume um ErrorController no módulo padrão com um método errorAction():
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
}
}
Assumindo a estrutura de diretório já discutida, este arquivo estará em application/controllers/ErrorController.php. Você também precisará criar o script de visualização em application/views/scripts/error/error.phtml; o conteúdo do exemplo parecerá com:
Erro Ocorreu um erro
Ocorreu um erro; por favor, tente novamente mais tarde.
Com o seu primeiro controlador e visualizador em suas mãos, você agora pode abrir o seu navegador e navegar até o site. Assumindo que o seu domínio é example.com, qualquer dos seguintes URLs irão mostrar a página que acabamos de criar:
http://example.com/
http://example.com/index
http://example.com/index/index
Agora você está pronto para iniciar a criação de mais controladores e metódos de ação. Parabéns!
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 20188).

