Guia de Início Rápido do Zend_Controller Introdução 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. 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/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!