marcusslv / abstractor
Scaffold an entire Laravel domain with one Artisan command: entity, repository, service, controller, interface, migration, factory and seeder. Built for DDD and Clean Architecture projects.
Requires
- php: ^8.2
- illuminate/console: ^12.0
- illuminate/support: ^12.0
Requires (Dev)
- laravel/pint: ^1.13
- orchestra/testbench: ^10.0
- rector/rector: ^1.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Gera a estrutura completa de um domínio Laravel com um único comando Artisan: entity, repository, service, controller, interface, migration, factory e seeder. Feito para projetos em DDD ou Clean Architecture.
O problema que resolve
Todo projeto Laravel estruturado em domínio começa com as mesmas dezenas de arquivos: entidade, repositório, contrato, serviço, controller, migration, factory e seeder, sempre com a mesma forma e sempre escritos à mão. O pacote gera esse conjunto em um comando, com nomenclatura e estrutura consistentes entre módulos.
Requisitos
- PHP 8.2 ou superior
- Laravel 12
Instalação
composer require marcusslv/laravel-domain-generator --dev
O service provider é registrado automaticamente pelo package discovery do Laravel.
Uso
Classes abstratas do projeto
php artisan make:abstracts
Gera as classes abstratas que servem de base para todo o domínio: Entity, Repository, Service, Controller e Interface. Rode uma vez por projeto.
Um novo domínio
php artisan make:domain
Gera o conjunto completo de um domínio: Entity, Repository, Service, Controller, Interface, Migration, Factory e Seeder.
Desenvolvimento
composer test # executa a suíte de testes composer pint # verifica a formatação composer pint:fix # aplica a formatação composer rector:check # analisa refatorações sugeridas
Changelog
As mudanças de cada versão estão em CHANGELOG.md.
Contribuindo
Issues e pull requests são bem-vindos. Para mudanças maiores, abra uma issue antes para discutir a proposta.
Licença
MIT. Veja LICENSE.