alexandresafarpaim/feature-maker

Gera uma feature completa com estrutura Laravel personalizada

0.1.4 2025-07-08 20:23 UTC

This package is auto-updated.

Last update: 2025-07-08 20:23:37 UTC


README

Laravel Feature Maker

Laravel License: MIT

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 🚀

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 e Update
  • 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 ;)