paulo-dutra logo

Convenções para rotas e controllers no Yii2

Fala galera, no post de hoje iremos falar um pouco sobre convenções de rotas e controllers no Yii2, recapitulando no post anterior efetuamos a instalação e a explicação da estrutura de arquivos e pastas.

Após realizar a instalação, podemos “startar” o servidor embutido por meio do seguinte comando:

   php yii serve

Por padrão o projeto irá executar na seguinte url: localhost:8080, ao executar a mesma no browser você terá uma tela similar a que esta sendo apresentada abaixo:

yii2

No canto inferior direito temos um icone do framework esse espaço é reservado para a debug toolbar, caso você clique na seta, será apresentado no rodapé da página algumas informações tais como versão do framework, versão do php, status code, rota, tempo de carregamento entre outras:

debug-toolbar-rodape

Caso clique no icone, será aberta uma página com maiores informações, nessa página além das informações apresentadas no item anterior, é apresentada um item chamado Available Debug Data com uma tabela que permite a realização de filtros, nessa tabela é apresentado o IP que realizou a requisição, qual metódo http foi utilizado, se a requisição foi via ajax entre outras informações:

debug-toolbar-page

Apresentada a debug toolbar, por default temos algumas rotas padrões no projeto, entre elas uma rota de login, ao clicar nessa opção de menu, podemos realizar um teste utilizando os seguintes usuários e senhas:

Rotas

No Yii2 não precisamos registrar as rotas em um arquivo separado o roteamento dele funciona da seguinte forma, para exemplificar iremos pegar como exemplo a seguinte rota index.php?r=site%2Fabout

site-controller-about

Temos um controller chamado SiteController.php por padrão a prefixo antes da palavra controller será parte do nome da rota e dentro do controller temos uma action chamada about. o parâmetro r que é passado como query string representa a rota logo após temos o nome do controller e depois o nome da ação. OBS: Esse %2F é o caractere / (barra) que esta no padrão urlencode.

rota-about

Em caso de nome composto para controller a regra se mantém entretanto ele irá utilizar o hífen para separar o nome na URL exemplo temos um controller chamado TestTestandoController uma actionIndex no mesmo, então ficara: test-testando/index ou index.php?r=test-testando/index a mesma regra se aplica para o nome das actions

Por padrão para renderizar uma view no Yii utilizamos o helper $this->render(‘nome-da-view’), por convenção se o nome do controller for site e a view for about ele ira buscar no diretório views uma pasta chamada site/about.php

Criando uma controller no Yii2 usando o Gii

O Gii é um gerador de código(scafold) do Yii, com ele podemos gerar estruturas de controller, form, module, model, migration e até cruds completos. Para gerar a estrutura inicial de um controller no Gii temos que digitar no terminal:

 php yii gii/controller --controllerClass=”nameSpace-do-controller” 

Por exemplo:

    php yii gii/controller --controllerClass=”app\controllers\TestController”

Ao executar responda com yes a seguinte pergunta Ready to generate the selected files?

guii-criando-controller

Configurando urls amigáveis no Yii2

Apesar do padrão query string ser o padrão ao realizarmos a instação do framework temos a opção de trabalhar com urls amigáveis. Vá até o arquivo web.php que fica dentro do diretório config. Descomente as linhas de comentários que está envolvendo o array urlManager, note que o mesmo possui alguns parâmetros.

7-web-config-url-pretty.png

Bom essa foi uma pequena explicação sobre convenções de rotas e controller no framework yii2. E ai o que achou ? comente abaixo.