Criando módulos com o Gii
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
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.
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.
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.
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.
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