Modularizando Sua Aplicação Laravel

Olá, tudo bem?!

Criar aplicações reutilizáveis, manuteníveis, de fácil compreensão pelos membros do time é o desafio do dia a dia.

Sem sombra de dúvidas é o correto e devemos seguir esta linha de pensamento, pois assim temos uma aplicação saudável, facilitando novas implementações.

O Laravel é um grande framework, onde vem crescendo cada vez mais ao longo dos anos, em minhas pesquisas e estudos encontrei uma maneira de construir aplicações de forma modular no framework, e irei compartilhar com vocês os resultados dos estudos.

Para melhor aproveitamento do material a seguir recomenda-se o conhecimento básico sobre Laravel e composer.

 

Dependências

Para construirmos nosso exemplo são necessários:

 

Instalação

Devemos iniciar instalando o Laravel, execute o seguinte comando pelo terminal:

Devemos aguardar até que todo o processo seja finalizado, em seguida devemos acessar o projeto criado, execute o seguinte comando:

Após acessar o projeto devemos instalar o componente laravel-modules, para isso execute o seguinte comando:

Aguarde o processo de instalação do pacote finalizar.

 

Configurações

É necessário configurar o provider e alias  (apenas para versões inferiores ao Laravel 5.5) do pacote que instalamos para isso acesse o arquivo config/app.php.

Localize o array de configurações dos providers e inclua a seguinte informação no final do array:

Em seguida configure o alias, esse array é declarado logo após o provider, inclua a seguinte instrução.

Com as devidas configurações realizadas, devemos publicar o provider do componente, para isso execute o seguinte comando na raiz do projeto por meio do terminal, sendo:

Devemos agora registrar a namespace de origem ao nosso diretório modules que será criado, para isso acesse o arquivo composer.json na raiz do projeto e inclua o seguinte trecho no autoload:

Para finalizar devemos executar o dump do autoload do composer, para que o mesmo registre os módulos, para  isso execute o seguinte comando:

Devemos configura o acesso ao banco de dados, para isso crie um banco de dados com o nome laravel_modules, em seguida acesse o arquivo .env localizado na raiz do nosso projeto e configure a seção para acesso ao MySQL, abaixo podemos ver um exemplo.

 

Criando o modulo Products

Para criar o módulo, devemos executar o seguinte comando no terminal:

Após finalizar o processo, será criado o diretório Modules na raiz do nosso projeto, diretório ao qual é responsável por armazenar todos os módulos que forem criados na aplicação. Dentro dele encontraremos o diretório Products com a seguinte estrutura:

A estrutura não por acaso é similar a atual estrutura do Laravel, feito para melhor compreensão e correlação dos diretórios e suas funções.

 

Criando Model

Devemos criar nossa model que irá representar a tabela products, execute o seguinte comando:

Após finalização, o arquivo encontra-se em Modules\Products\Entities.

No atributo fillable devemos inserir dois parâmetros, title e description.

Vamos inserir também  o atributo table.

 

Criando Migrations

Para criar a migration, referente a tabela products devemos executar o seguinte comando:

O comando acima se assemelha ao nativo do Laravel, porém é necessário informar o nome do módulo no final determinando o local de criação da migration.

Após execução podemos acessar o diretório modules\Products\Database\Migrations para visualizar o arquivo.

Demos agora criar a estrutura da tabela no método up, sendo:

Com isso criamos uma estrutura simples para a tabela products, porém suficiente para nosso exemplo.

Para executar nossa migration, execute o seguinte comando:

Após finalização nossa tabela products será criada.

 

Criando Seed

Podemos também popular previamente nossa tabela de produtos, pois quando um novo integrante do projeto for configurar o projeto ele já terá tudo funcionando, sem ter que ficar criando registros para usar o sistema, para criar o seeder devemos executar o seguinte comando:

Nossa seed encontra-se no diretório Modules\Database\Seeders\ProductsDatabaseSeeder.

Com o arquivo criado basta seguir os mesmos processo de um a aplicação laravel para inserção dos dados no seeder.

 

Considerações finais

Como podemos observar o recurso é robusto,  de fácil compreensão, sua curva de aprendizagem é baixa e facilita a modularização das aplicações Laravel.

Espero que tenham apreciado o conteúdo, convido a todos que deixem um comentário e que compartilhe o conteúdo com seus colegas.

Grande abraço e sucesso em seus projetos!

2 comentários sobre “Modularizando Sua Aplicação Laravel”

    1. Olá, Icaro.
      Fico feliz que tenha apreciado o conteúdo, obrigado pelo toque foi corrigido.
      Compartilhe com seus amigos para que mais pessoas possam chegar ao conteúdo.
      Grande abraço e sucesso em seus projetos.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *