Laravel Auto CRUD Generator: Automatize CRUD no Laravel

O Laravel Auto CRUD Generator, desenvolvido por Abdelrahman Muhammed, automatiza operações CRUD no Laravel. Com um comando, detecta modelos, gera controladores, rotas, validações e mais, seguindo boas práticas. Inclui opções como cURL e Postman para APIs, ideal para agilizar projetos com qualidade.

Publicado em: 09, março 2025

Imagem da logo do Laravel Auto Crud

O Laravel Auto CRUD Generator é um pacote desenvolvido por Abdelrahman Muhammed que simplifica e agiliza as operações CRUD (Create, Read, Update, Delete - Criar, Ler, Atualizar, Deletar) no framework Laravel. Ele permite gerar automaticamente todos os arquivos e lógicas necessários para um modelo específico com apenas um único comando, economizando tempo e esforço para desenvolvedores.

O que é CRUD e por que isso é útil?

CRUD refere-se às quatro operações básicas realizadas em um banco de dados ou aplicação web. Em projetos Laravel, criar essas operações manualmente pode ser trabalhoso, especialmente ao lidar com múltiplos modelos. O Laravel Auto CRUD Generator automatiza esse processo, eliminando a necessidade de escrever repetidamente controladores, validações, rotas e views, ao mesmo tempo em que mantém a qualidade e a organização do código.

#Principais Funcionalidades

O pacote oferece uma série de recursos que tornam o desenvolvimento mais eficiente:

  1. Detecção Automática de Modelos O gerador escaneia automaticamente a pasta app/Models do seu projeto Laravel e identifica os modelos disponíveis, permitindo que você escolha qual deseja utilizar.
  2. Interface de Linha de Comando (CLI) Interativa Por meio de um comando no terminal, o pacote apresenta uma interface interativa que facilita a seleção do modelo e a configuração das opções de geração.
  3. Geração Completa de Arquivos Com um único comando, o pacote cria: 
    • Controlador: Lógica para gerenciar as operações CRUD.
    • Validação de Requisições: Regras para garantir que os dados enviados sejam válidos.
    • Rotas: Endpoints ou URLs para acessar as operações.
    • Views (para aplicações web): Páginas prontas para exibir e gerenciar dados.
    • E outros arquivos dependendo das opções escolhidas.
  4. Conformidade com as Melhores Práticas do Laravel O código gerado segue os padrões recomendados pelo Laravel, resultando em um código limpo, organizado e fácil de manter ou expandir.

#Como Instalar o Pacote

Para começar a usar o Laravel Auto CRUD Generator, siga os passos abaixo:

  1. Instalação via Composer Execute o seguinte comando no terminal para adicionar o pacote ao seu projeto como uma dependência de desenvolvimento:
  2. text
  3. CollapseWrapCopy
  4. composer require mrmarchone/laravel-auto-crud --dev
  5. Publicação da Configuração Após a instalação, publique o arquivo de configuração do pacote para personalizá-lo, se necessário:

Isso criará um arquivo de configuração na pasta config do seu projeto.

php artisan vendor:publish --provider="Mrmarchone\\LaravelAutoCrud\\LaravelAutoCrudServiceProvider" --tag="auto-crud-config"
  1. Geração do CRUD Use o comando Artisan para iniciar a geração dos arquivos CRUD:
php artisan auto-crud:generate [opções]

#Opções do Comando

O comando auto-crud:generate suporta várias opções para personalizar o que será gerado. Alguns exemplos incluem:

  • -model=NomeDoModelo: Especifica o modelo para o qual o CRUD será gerado (ex.: User).
  • -type=tipo: Define o tipo de aplicação (web para interfaces visíveis ou api para endpoints de API).
  • -repository: Gera um repositório para separar a lógica de acesso a dados.
  • -curl: Cria exemplos de comandos cURL para testar a API.
  • -postman: Gera uma coleção para o Postman, facilitando testes de API.

Exemplo de Uso

Um comando completo poderia ser:

php artisan auto-crud:generate --model=User --type=api --repository --curl --postman

Esse comando gera os seguintes arquivos, já preenchidos com código funcional:

  • app/Http/Controllers/Api/UserController.php: Controlador da API para o modelo User.
  • app/Http/Requests/UserRequest.php: Regras de validação para requisições relacionadas ao User.
  • app/Http/Resources/UserResource.php: Transformador de dados para respostas da API.
  • app/Http/Repositories/UserRepository.php: Repositório para lógica de acesso ao banco de dados.
  • app/Http/Services/UserService.php: Serviço para encapsular a lógica de negócios.
  • Atualização no arquivo routes/api.php: Adiciona rotas de API para o recurso User.
  • laravel-auto-crud/curl.txt: Arquivo com exemplos de comandos cURL para cada endpoint gerado.
  • laravel-auto-crud/postman.json: Arquivo que pode ser importado no Postman com requisições prontas.

#Explicação dos Arquivos Gerados

  • Controlador: Gerencia as requisições HTTP e coordena as operações CRUD.
  • Requisições: Valida os dados enviados pelo usuário antes de processá-los.
  • Recursos: Formata os dados retornados pela API em um formato consistente (usado em APIs RESTful).
  • Repositório: Abstrai o acesso ao banco de dados, promovendo um código mais modular.
  • Serviço: Contém a lógica de negócios, separando-a do controlador.
  • Rotas: Define os endpoints acessíveis na aplicação (ex.: /api/users).
  • cURL e Postman: Ferramentas para testar a API rapidamente.

#Onde Encontrar Mais Informações

Para explorar mais detalhes sobre o Laravel Auto CRUD Generator, como opções adicionais, personalizações ou o código-fonte, visite o repositório oficial no GitHub. Lá, você também pode contribuir com melhorias ou relatar problemas.

#Por que Usar Este Pacote?

Este pacote é ideal para desenvolvedores que desejam:

  • Acelerar o desenvolvimento de aplicações Laravel.
  • Manter um código padronizado e de alta qualidade.
  • Testar rapidamente APIs com ferramentas como cURL e Postman.
  • Focar em funcionalidades específicas do projeto, em vez de tarefas repetitivas.

Com o Laravel Auto CRUD Generator, você pode transformar horas de trabalho manual em poucos minutos, mantendo a flexibilidade para ajustar o código gerado conforme necessário.

/ Autor

Foto do autor do post Lucas Souza (Virgu)

Lucas Souza (Virgu)

{Full-Stack Specialist Engineer}

Mais de 10 anos de experiência com Laravel e sólidos conhecimentos em frameworks front-end, como ReactJS, React Native e Vue JS.
Experiência em Design de Serviço.
No primeiro projeto profissional como júnior, desenvolveu em e-commerce para a maior indústria de equipamentos odontológicos da América Latina. Atualmente, atua como Full Stack Engineer Specialist em uma grande multinacional.
Lidera decisões técnicas e é um suporte fundamental para a equipe de desenvolvimento.