Generate laravel Domain driven design (monolith) structure
ammardaana/laravel-domain-driven-design is a Laravel package for generate laravel domain driven design (monolith) structure.
It currently has 10 GitHub stars and 2.065 downloads on Packagist (latest version 1.1.11).
Install it with composer require ammardaana/laravel-domain-driven-design.
Discover more Laravel packages by ammardaana
or browse all Laravel packages to compare alternatives.
Last updated
ammardaana/laravel-domain-driven-design provides command interfaces and handlers to organize your Laravel applications using Domain-Driven Design (DDD) and a modular architecture.
composer require ammardaana/laravel-domain-driven-design
This package provides the following artisan commands to generate domain-driven components:
php artisan make:domain {--name=}
# Generate a Service class
php artisan make:service {--domain=} {--name=}
# Generate an Action class
php artisan make:action {--domain=} {--name=}
# Generate a DTO (Data Transfer Object) class
php artisan make:dto {--domain=} {--name=}
# Generate an Enum class
php artisan make:enum {--domain=} {--name=}
# Generate a Model class
php artisan make:model {--domain=} {--name=} {--with-resources=}
# Generate a Controller class
php artisan make:controller {--domain=} {--name=}
# Generate a Request class
php artisan make:request {--domain=} {--name=}
# Generate a Resource class
php artisan make:resource {--domain=} {--name=}
# Generate a Middleware class
php artisan make:middleware {--domain=} {--name=}
# Generate a Rule class
php artisan make:rule {--domain=} {--name=}
# Generate a Facade class
php artisan make:facade {--domain=} {--name=}
# Generate an Event class
php artisan make:event {--domain=} {--name=}
# Generate a Listener class
php artisan make:listener {--domain=} {--name=}
# Generate a Console Job class
php artisan make:console-job {--domain=} {--name=}
All commands support optional --domain and --name flags. If not provided, you'll be prompted interactively.
class GenerateActionCommand extends Command
{
public function __construct(Filesystem $files)
{
parent::__construct();
$this->files = $files;
$this->namespacePostfix = 'Actions';
$this->type = 'Action';
}
}
app/
└── Domain/
├── Authentication/
│ ├── Actions/
│ │ └── LoginAction.php
│ ├── Enums/
│ │ └── UserStatusEnum.php
│ └── Http/
│ └── Controllers
│ └── Requests
│ └── Resources
│ └── Models
│ └── Services
|
└── PurchaseFlow/
This package is released under the MIT License.