alexandresafarpaim/feature-maker

Gera uma feature completa com estrutura Laravel personalizada

Installs: 9

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/alexandresafarpaim/feature-maker

0.1.4 2025-07-08 20:23 UTC

This package is auto-updated.

Last update: 2025-12-05 14:51:05 UTC


README

Laravel Feature Maker

Laravel

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 alexandresafarpaim/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 ;)