Guia de Início Rápido do Zend_ControllerIntroduçãoZend_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.
Início Rápido
Se você necessita de informações mais detalhadas, veja as seções seguintes.
Se você quiser apenas começar rápido, continue lendo.
Criando a Estrutura de Arquivos
O primeiro passo é criar sua estrutura de arquivos.
A estrutura típica é a seguinte:
Estabelecendo seu Documento Raiz
No seu servidor web, defina seu documento raiz para o diretório
html/ da estrutura de arquivos acima mencionada.
Criando as Regras de Reescrita
Edite o arquivo html/.htaccess acima para ficar como:
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.
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.
Criando o Arquivo de Inicialização
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:
Isto irá instanciar e despachar o controlador frontal, que irá encaminhar as
requisições para os controladores de ação.
Criando o Controlador de Ação Padrã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:
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.
Criando o Script de Visualização
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!
]]>Criando o Controlador de Erro
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():
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.
]]>Veja o Site!
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/indexhttp://example.com/index/index
Agora você está pronto para iniciar a criação de mais controladores
e metódos de ação. Parabéns!