Rotas
O roteamento é uma parte muito importante de um framework MVC, como o Zeanwork trabalha com o design pattern MVC, temos que esquecer por alguns momentos o conceito de um simples servidor web, onde as URL’s refletem diretamente o caminho físico do arquivo no servidor.
O Zeanwork trabalha com a seguite estrutura de URL’s: /controller/action/id. Para executarmos uma página, precisamos saber qual controller e action será executado, por isso podemos criar rotas para personalizar ao máximo as suas URL’s.
Para criar estas rotas, o Zeanwork tem um arquivo de configuração somente para esta tarefa, que é localizada em App/Configs/routers.php
Quando você acessar o root da sua aplicação o Zeanwork deve saber qual controller será executado, por isso existe esta configuração. O Zeanwork tem como padrão o controller home.
Para alterar esta configuração você deve localizar o método Router::setRoot();
Veja exemplo:
Quando você acessa uma página e não define qual a action deveria ser executada, é a action index que é definida pelo Zeanwork.
Os prefixos servem para separar diversas partes da sua aplicação, por exemplo, você tem uma area administrativa em sua aplicação e deseja acessar pela url (www.seusite.com.br/admin), para que você possa fazer isso sem criar uma pasta e colocar todos os arquivos do Zeanwork e de sua aplicação novamente, então podemos criar prefixos e assim poder utilizar controllers já existente em sua aplicação e somente criar novas actions para sue prefixo.
Para acrescentar um prefixo você deve utilizar o método Router::addPrefix().
Veja exemplo:
Quando você acessar uma página utilizando um prefixo, por exemplo /admin/post/add, o que será chamado pelo Zeanwork será o controller post e a action adminAdd. O Zeanwork coloca o nome do prefixo antes do nome da action, isso também acontece o a action index, tornado assim nomeDoPrefixoNomeDaAction.
Rotas são utilizadas para criar URL’s mais amigáveis e assim receber o conteúdo de uma outra URL, é quase que um include do PHP! É uma conexão entre URL’s!
Para acrescentar novas rotas a determinadas URL’s, utilizamos o método Router::connect().
Este método recebe dois parâmetros:
1º A URL de acesso
2º A URL de retorno (Rota)
Os dois parâmetros podem ter expreções regulares, com isso podemos montar URL’s conforme as suas necessidades. Você também pode utilizar as strings mágicas, que são apenas um nome para algumas expreções prontas do Zeanwork.
Veja quais strings mágicas o Zeanwork possui:
Veja alguns exemplos de roteamento:
O Zeanwork possui esta funcão de filtrar automáticamente parâmetros nomeados, podendo ser parâmetros via GET (/controller/action/?nomeDoParametro=valor) ou via rota (/controller/action/nomeDoParametro:valor), porem para receber estes dados filtrados você deve utilizar a classe do Zeanwork chamada Input.
Para definir quais parâmetros serem filtrados, você deve utilizar o método Router::setFilterNamed().
Este método recebe dois parâmetros:
1º Nome do parâmetro
2º Tipo do valor a ser setado
Este filtro nada mais é, do que setar o tipo do valor, por exemplo: o valor informado foi uma string, e você quer que seja um número, então retornará um número.
Tipos de dados que é aceito:
Veja exemplo:
O Zeanwork trabalha com a seguite estrutura de URL’s: /controller/action/id. Para executarmos uma página, precisamos saber qual controller e action será executado, por isso podemos criar rotas para personalizar ao máximo as suas URL’s.
Para criar estas rotas, o Zeanwork tem um arquivo de configuração somente para esta tarefa, que é localizada em App/Configs/routers.php
Controller padrão
Quando você acessar o root da sua aplicação o Zeanwork deve saber qual controller será executado, por isso existe esta configuração. O Zeanwork tem como padrão o controller home.
Para alterar esta configuração você deve localizar o método Router::setRoot();
Veja exemplo:
Router::setRoot('home');
Action padrão
Quando você acessa uma página e não define qual a action deveria ser executada, é a action index que é definida pelo Zeanwork.
Definindo prefixos
Os prefixos servem para separar diversas partes da sua aplicação, por exemplo, você tem uma area administrativa em sua aplicação e deseja acessar pela url (www.seusite.com.br/admin), para que você possa fazer isso sem criar uma pasta e colocar todos os arquivos do Zeanwork e de sua aplicação novamente, então podemos criar prefixos e assim poder utilizar controllers já existente em sua aplicação e somente criar novas actions para sue prefixo.
Para acrescentar um prefixo você deve utilizar o método Router::addPrefix().
Veja exemplo:
Router::addPrefix('admin');
Quando você acessar uma página utilizando um prefixo, por exemplo /admin/post/add, o que será chamado pelo Zeanwork será o controller post e a action adminAdd. O Zeanwork coloca o nome do prefixo antes do nome da action, isso também acontece o a action index, tornado assim nomeDoPrefixoNomeDaAction.
Definindo rotas
Rotas são utilizadas para criar URL’s mais amigáveis e assim receber o conteúdo de uma outra URL, é quase que um include do PHP! É uma conexão entre URL’s!
Para acrescentar novas rotas a determinadas URL’s, utilizamos o método Router::connect().
Este método recebe dois parâmetros:
1º A URL de acesso
2º A URL de retorno (Rota)
Os dois parâmetros podem ter expreções regulares, com isso podemos montar URL’s conforme as suas necessidades. Você também pode utilizar as strings mágicas, que são apenas um nome para algumas expreções prontas do Zeanwork.
Veja quais strings mágicas o Zeanwork possui:
| String mágica | Corresponde a: |
| :any | qualquer caracter, incluindo barras . |
| :fragment | qualquer caracter, exceto barras. |
| :num | somente números. |
| :action | ações comuns, taís como: index, show, add, create, edit, update, remove, del, view e item. |
| :prefix | prefixos definidos para sua aplicação. |
| :lang | idiomas definidos para sua aplicação. |
Veja alguns exemplos de roteamento:
| URL de acesso | URL de retorno | Código para definição da rota |
| /posts/aprendendo-rotas-do-zeanwork | /posts/view/aprendendo-rotas-do-zeanwork | Router::connect('/posts/:any', '/posts/view/$1'); |
| /posts/456/aprendendo-rotas-do-zeanwork | /posts/view/456/aprendendo-rotas-do-zeanwork | Router::connect('/posts/:num/:fragment', '/posts/view/$1/$2'); |
| /edit | /users/edit | Router::connect('/edit', '/users/edit'); |
Filtrando parâmetros nomeados
O Zeanwork possui esta funcão de filtrar automáticamente parâmetros nomeados, podendo ser parâmetros via GET (/controller/action/?nomeDoParametro=valor) ou via rota (/controller/action/nomeDoParametro:valor), porem para receber estes dados filtrados você deve utilizar a classe do Zeanwork chamada Input.
Para definir quais parâmetros serem filtrados, você deve utilizar o método Router::setFilterNamed().
Este método recebe dois parâmetros:
1º Nome do parâmetro
2º Tipo do valor a ser setado
Este filtro nada mais é, do que setar o tipo do valor, por exemplo: o valor informado foi uma string, e você quer que seja um número, então retornará um número.
Tipos de dados que é aceito:
| integer |
| float |
| string |
| array |
| boolean |
| null |
Veja exemplo:
Router::setFilterNamed('id', 'integer');



