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, --request
DTO文件具有静态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]