awtechs / laravel-domain-kit
Opinionated domain-first generators for Laravel
Requires
- php: ^8.2
- illuminate/support: ^11 || ^12
This package is auto-updated.
Last update: 2026-02-28 02:59:31 UTC
README
Opinionated, domain-first tooling for Laravel generators.
Install
composer require --dev awtechs/laravel-domain-kit:^1.0
Laravel auto-discovers the service provider.
Publish package config:
php artisan vendor:publish --tag=domain-kit-config
Publish stubs:
php artisan vendor:publish --tag=domain-kit-stubs
What it generates
Domain Kit writes under app/Domains/{Domain}/....
Default make:domain folders are controlled by config/domain-kit.php.
Commands
Domain root
php artisan make:domain Orders
Controller
php artisan make:domain:controller Orders OrderController
Resource controller:
php artisan make:domain:controller Orders OrderController --resource
# or
php artisan make:domain:controller Orders OrderController -r
Resource methods generated:
indexcreatestoreshoweditupdatedestroy
API resource controller:
php artisan make:domain:controller Orders OrderController --api
API resource methods generated:
indexstoreshowupdatedestroy
create and edit are intentionally omitted for API controllers.
Resource + actions shortcut:
php artisan make:domain:controller Orders OrderController --ra
API resource + actions shortcut:
php artisan make:domain:controller Orders OrderController --aa
Legacy equivalent flags still work:
--resource --actionfor resource + actions--resource --api --actionfor api resource + actions
Action
php artisan make:domain:action Orders CreateOrder
Action naming is verb-first:
CreateUserUpdateUserDestroyUser
When matching controller methods exist, action generation auto-wires the controller:
- Adds action
useimport - Adds type-hint parameter into
store,update, ordestroy
Model
php artisan make:domain:model Orders Order
When generating actions, Domain Kit checks for a matching domain model:
- If model exists, it is imported into the action class
- If model does not exist, you are prompted to create it
Event
php artisan make:domain:event Orders OrderPlaced
Listener
php artisan make:domain:listener Orders SendOrderConfirmation
Job
php artisan make:domain:job Orders ProcessOrderPayment
Action style config
config/domain-kit.php:
'controller_actions' => [ 'style' => 'flat', // or 'nested' ],
flat style:
App\\Domains\\Users\\Actions\\CreateUserApp\\Domains\\Users\\Actions\\UpdateUserApp\\Domains\\Users\\Actions\\DestroyUser
nested style:
App\\Domains\\Users\\Actions\\User\\CreateApp\\Domains\\Users\\Actions\\User\\UpdateApp\\Domains\\Users\\Actions\\User\\Destroy
Requirements
- PHP
^8.2 illuminate/support^11 || ^12
Status
Current stable line is 1.0.x.