alexandresafarpaim / feature-maker
Gera uma feature completa com estrutura Laravel personalizada
README
Laravel Feature Maker
Laravel Feature Maker é um gerador de scaffolding para projetos Laravel, criado para acelerar o desenvolvimento e padronizar a estrutura de código por feature. Ideal para software houses e times que trabalham com projetos em larga escala e querem reutilizar funcionalidades de forma modular.
Sumário 📚
- Instalação 🚀
- Como Funciona ⚙️
- Uso do Comando 🧪
- Padrões Gerados ✨
- Personalização 🧰
- Boas Práticas ✅
- Licença 📄
Instalação 🚀
Instale com:
composer require suaempresa/feature-maker
💡 Recomendamos não instalar como
--dev
para garantir que as migrations customizadas sejam carregadas corretamente em produção.
Como Funciona ⚙️
O comando php artisan make:feature
gera a estrutura completa de uma feature, baseada em stubs personalizados.
Pastas geradas:
app/Features/NomeDaFeature/
├── Controllers/
├── Models/
├── Requests/
├── Resources/
├── Migrations/
Arquivos são criados com base nas opções que você passa ao comando.
Uso do Comando 🧪
php artisan make:feature NomeDaFeature [--controller|-c] [--migration|-m]
Exemplos
Criar tudo:
php artisan make:feature Produto -c -m
Criar apenas model e migration:
php artisan make:feature Categoria --migration
Criar apenas as pastas da feature:
php artisan make:feature IntegracaoPagarme
As pastas são sempre criadas mesmo se nenhum arquivo for gerado (útil para organização e versionamento).
Padrões Gerados ✨
-
Model com:
fillable
,casts
,HasFactory
scopeFilter()
pronto para pesquisa via?search=...
-
Controller (REST API) com:
- Index paginado com filtro
- Store, Show, Update, Destroy
- Usa FormRequests e Resources
-
Requests com:
- Arquivos separados para
Store
eUpdate
- Arquivos separados para
-
Resources com:
- Resource para transformar o model em JSON
-
Migration com:
- Nome da tabela automaticamente pluralizado e convertido para snake_case
Personalização 🧰
Você pode editar os stubs em:
src/stubs/
Para adaptar os arquivos gerados ao seu padrão de projeto (adicionar soft deletes, timestamps customizados, relations, etc.).
Boas Práticas ✅
- Modularização por feature (inspirado em DDD-lite)
- Reutilização via copy/paste facilitada
- Pronto para CI/CD (sem dependências de execução runtime)
- Pode ser versionado e distribuído internamente por GitHub ou repositórios privados
Licença 📄
MIT — Livre para uso comercial e pessoal. Mantenha os créditos ;)