Criando módulos com o Gii

Cálcio Heavy Metal
PHPRio
Published in
4 min readDec 9, 2017

No artigo anterior, fizemos algumas telas com o CRUD usando o Gii. Nesse artigo continuaremos a usar o Gii, mas dessa vez iremos criar um módulo.

Entendendo o que é um módulo.

Um módulo basicamente é um mini app dentro do seu app principal. No módulo você cria toda sua estrutura MVC para que ela fique estruturalmente mais organizada e claro para que possa reutilizá-la em outro projeto Yii.

Um módulo sozinho, ou seja, sem uma aplicação Yii não funciona.

Exemplos de uso de módulos: Sistema administrativo (o que vamos criar aqui), uma API para retornar JSON para um app Android, um carrinho de compras para seu site e etc.

Criando o módulo de administração.

Como o principal objetivo do template básico é ser enxuto e simples, criar uma área administrativa separada do restante do site é feita “manualmente” através da criação de um módulo usando o Gii. → Se ainda não sabe o que é o Gii clique aqui.

Esse módulo será responsável pela parte administrativa do site, por ele podemos gerenciar cadastro e login dos usuários, cadastrar itens na vitrine, editar a página about e etc.

Para acessar o Gii basta chamar no seu navegador http://localhost/vitrine/web/gii

Clique no botão start em Module Generator

Tela inicial da criação de módulos

Explicando os campos.

  • Module Class: é o namespace que indica onde será criado o módulo no seu projeto. Ou seja, aqui é o path (caminho) que seu módulo será criado e também o arquivo principal da chamada do módulo.
  • Module ID: Como o nome já sugere, será o ID que o Yii irá identificar no projeto. Esse ID (nome) que deverá ser referenciado na chamada de um modulo no Yii.

Para a nossa vitrine, criaremos um módulo chamado admin. Nosso path será: app\modules\admin\Admin.

Dicas:
O Yii sugere que seus módulos fiquem no diretório “modules” mas nada impede você de criar qualquer outro nome.

No campo Module Class não aceita caracteres especiais como “-”, “?” etc.

Clique no botão Preview para continuar o processo!
Criação dos arquivos do módulo admin gerado pelo preview. Clique no botão Generate.
Tela de confirmação da criação do modulo. Path: ‘app\modules\admin\Admin

Reparem bem no texto que está em verde na imagem.

To access the module, you need to add this to your application configuration.

O que isso quer dizer? Exatamente o que você entendeu. Para seu módulo funcionar é preciso adicionar esse pequeno trecho de código gerado pelo Gii no arquivo de de configuração do seu app. Isso farei logo abaixo.

Tela de confirmação da criação do modulo. Listagem dos arquivos criados.

Vá até a o seu projeto e veja que foi criado um diretório ‘modules’ e dentro dele um diretório chamado ‘admin’ e dentro dele todos os arquivos que pertencem ao módulo admin.

Registrando módulos no Yii

Todo módulo criado deve ser registrado no sistema se não ele são será carregado. Tente acessar a URL: http://localhost/vitrine/web/admin. Verá que vai receber o erro 404.

Erro causado por não ser feito o registro no app.

Abra o arquivo vitrine/config/web.php. Cole o código gerado pelo Yii para registrar o módulo.

Dica: Geralmente registro um módulo antes dos componentes, como pode ser visto no código acima. Mas nada impede dele ficar abaixo ou até mesmo ser o primeiro item do seu arquivo de configuração.

Uma vez que seu módulo já foi registrado, teste acessando a URL: http://localhost/vitrine/web/admin.

Após o registro do app, tudo funcionando.

Dica: Dentro da configuração do módulo, é possível configurar um template (layout) diferente do restante do app. Veremos mais tarde como fazer isso.

Descubra mais sobre módulos na doc do Yii 2.

Para o artigo não ficar muito longo e cansativo vou dividir ele em partes. Essa primeira parte ficou só com a criação do módulo e registro do módulo no sistema. No próximo post mostrarei como implementar um template e layout diferente para o Admin.

acompanhe o projeto e vejas os arquivos no GitHub: https://github.com/Calcio/vitrine

--

--