notiv / laravel-domain-commands
用于Laravel应用的Artisan命令,利用领域驱动设计。
Requires
- laravel/framework: ^8.30
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-18 22:46:15 UTC
README
安装
composer require notiv/laravel-domain-commands
将 CommandLoader::loadCommands() 添加到 app/Console/Kernel.php
<?php ... +use Notiv\Console\CommandLoader; class Kernel extends ConsoleKernel { protected function commands() { $this->load(__DIR__ . '/Commands'); + CommandLoader::loadCommands(); require base_path('routes/console.php'); } }
这不是一个好的解决方案,但我不确定如何在一切完成后注册命令
将 "Domain\\": "app/Domain/" 添加到 composer.json
"autoload": {
"psr-4": {
"App\\": "app/",
+ "Domain\\": "app/Domain/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},
如果需要,您可以发布配置
php artisan vendor:publish --tag="domain-commands-config"
领域命令
-
make:model <domain:model>创建一个新的Eloquent模型类
示例:
php artisan make:model User:User选项
--force即使模型已存在,也创建类-a, --all为模型生成迁移、seeder和factory-f, --factory为模型创建一个新的factory-m, --migration为模型创建一个新的迁移文件-s, --seed为模型创建一个新的seeder文件-p, --pivot指示生成的模型是否应该是一个自定义中间表模型
-
make:action <domain:action>为特定领域创建操作
示例:
php artisan make:action User:CreateUserAction -
make:dto <domain:dto>为特定领域创建DTO
示例:
php artisan make:dto User:CreateUserDTO选项
-r, --requestDTO文件具有静态fromRequest方法
-
make:cast <domain:cast>创建一个新的自定义Eloquent cast类
示例:
php artisan make:cast User:JsonCast -
make:collection <domain:collection>为特定领域创建集合
示例:
php artisan make:collection User:UserCollection -
make:event <domain:event>创建一个新的事件类
示例:
php artisan make:event User:UserCreatedEvent -
make:enum <domain:enum>为特定领域创建枚举
示例:
php artisan make:enum User:UserColorEnum -
make:listener <domain:listener>创建一个新的事件监听器类
示例:
php artisan make:listener User:SendSlackMessage -e User:UserCreatedEvent --queued选项
--queued指示事件监听器应该排队-e, --event=<domain:event>正在被监听的事件类
-
make:observer <domain:observer>创建一个新的观察者类
示例:
php artisan make:observer User:UserObserver -m User:User选项
-m, --model=<domain:model>观察者应用到的模型
-
make:policy <domain:policy>创建一个新的策略类
示例:
php artisan make:policy User:UserPolicy -m User:Post选项
-m, --model=<domain:model>策略应用的模型-g, --guard=<domain:model>策略依赖的守卫
-
make:query-builder <domain:query-builder>为特定领域创建查询构建器
示例:
php artisan make:query-builder User:UserQueryBuilder -
make:rule <domain:rule>创建一个新的验证规则
示例:
php artisan make:rule User:PasswordMinlengthRule选项
-i, --implicit生成隐式规则
应用程序命令
-
make:controller <domain:controller>创建一个新的控制器类
示例:
php artisan make:controller User:UserController选项
--force即使控制器已存在,也创建类--api排除控制器中的创建和编辑方法-i, --invokable生成一个方法,可调用的控制器类-m <domain:model>, --model=<domain:model>为给定模型生成资源控制器-p <domain:model>, --parent=<domain:model>生成嵌套资源控制器类-r, --resource生成资源控制器类
-
make:request <domain:request>创建一个新的表单请求类
示例:
php artisan make:request User:LoginRequest -
make:job <domain:job>创建一个新的作业类
示例:
php artisan make:job User:SendMessageJob选项
--sync表示作业应为同步
-
make:mail <domain:mail>创建一个新的电子邮件类
示例:
php artisan make:mail User:WelcomeUser选项
-f, --force即使存在可投递的类也创建类-m, --markdown[=MARKDOWN]为可投递的类创建新的 Markdown 模板
-
make:notification <domain:notification>创建一个新的通知类
示例:
php artisan make:notification User:InvoicePaid选项
-f, --force即使存在通知也创建类-m, --markdown[=MARKDOWN]为通知创建新的 Markdown 模板
-
make:middleware <domain:middleware>创建一个新的中间件类
示例:
php artisan make:middleware User:AuthMiddleware -
make:resource <domain:resource>创建一个新的资源类
示例:
php artisan make:resource User:UserResource选项
-c, --collection创建资源集合
-
make:component <domain:component>创建一个新的视图组件类
示例:
php artisan make:component User:UserComponent选项
--force即使组件已存在也创建类--inline创建渲染内联视图的组件
-
make:view-model <domain:view-model>为给定应用程序创建视图模型
示例:
php artisan make:view-model User:UsersViewModel
数据库命令
-
make:factory <domain:factory>创建一个新的模型工厂
示例:
php artisan make:factory UserFactory选项
-m <domain:model>, --model=<domain:model>将工厂绑定到模型
TODO
- 添加测试
make:model --auth?make:state [domain:name]https://stitcher.io/blog/laravel-beyond-crud-05-statesmake:{http query builder} [app:name]