Utilizando Rotas com Zend Framework

As vezes, é importante definir algumas urls mais amistosas para sua aplicação, ao invés de deixar o padrão “controller/action/nomeparametro/valorparametro”, isso as vezes pode confundir, além de ficar feio para um site por exemplo.

Para contornar isso, temos o Zend_Controller_Router_Route, que nos facilita o trabalho de criarmos as tais rotas, que é nome mas apropriado para este tipo de redirecionamento.

O uso é simples, vamos criar no diretório ‘application/configs’ um arquivo chamado ‘routes.ini’, e colocamos nele o seguinte conteúdo:

[routes]
routes.artigos.route = "artigos/:sessao"
routes.artigos.defaults.controller = artigos
routes.artigos.defaults.action = index

Entendeu? Não? Eu explico então cada linha. Onde está escrito ‘artigos’, é o nome da rota que estamos definindo. Um identificador único para a mesma. Logo em seguida, nos valores, definimos o caminho da rota, ou seja, nossa url, que seria ‘/artigos’ e seu parâmetro, que podem ser vários, bastando começar com ‘:’ (dois pontos). As outras linhas são auto explicativas.

Dentro do action que você apontou a rota, para receber o valor do parâmetro ‘:sessao’ por exemplo, basta utilizar um $this->_getParam(‘sessao’).

Em nosso Bootstrap, adicionamos um método para buscar automaticamente nossas rotas

protected function _initRouter()
{
    $this->bootstrap('frontController');

    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', 'routes');

    $router = $this->getResource('frontController')
                   ->getRouter()
                   ->addConfig($config, 'routes');

    return $router;
}

Pronto, com isso, basta apontar sua url para ‘/artigos/nomedeumasessao’, e está definida sua rota personalizada. Você pode ir adicionando quantas rotas quiser em seu routes.ini.

Divirta-se ;)