evotic / make-extended
Laravel artisan make 命令的扩展
Requires
- php: ^8.2
- illuminate/console: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
This package is auto-updated.
Last update: 2024-09-07 01:32:16 UTC
README
Laravel Make Extended 包提供额外的 make:
命令,用于简化 Laravel 中的常见开发任务,例如创建动作、DTO(数据传输对象)、仓库、服务等等。本包旨在填补 Laravel 内置 Artisan 命令的空白,提供增强的工具以简化开发。
专为提高生产力和保持代码组织而开发,这些命令为复杂的 Laravel 应用提供了结构和关注点的分离。
主要功能
- 增强的
make:
命令:添加了如make:action
、make:dto
、make:repository
和make:service
等有用的 Artisan 命令。 - 关注点分离:通过提供 DTO、动作和仓库,促进 CQRS 和 DDD(领域驱动设计)等干净的架构模式。
- 可扩展性:易于自定义生成文件的占位符。有关更多信息,请参阅自定义占位符部分。
- 无缝集成:从 9.x 版本开始,与现有 Laravel 项目无缝工作。
安装
要安装 Laravel Make Extended 包,请按照以下步骤操作
-
通过 Composer 安装:
运行以下命令通过 Composer 安装包
composer require evotic/make-extended
-
发布配置(可选):
如果您想自定义包的任何方面,您可以发布配置文件
php artisan vendor:publish --tag=make-extended-config
使用
安装包后,您可以在 Laravel 项目中使用新的 make:
命令。
例如,要创建一个新的动作类,只需运行
php artisan make:action YourAction
每个生成的文件都将放置在适当的文件夹中,遵循 Laravel 的命名约定。
可用命令
本包提供了以下 make:
命令
make:action
创建一个单一动作类,可用于组织业务逻辑并简化控制器。通常用于 CQRS 模式。
示例
php artisan make:action ProcessOrderAction
这会生成以下文件
// app/Actions/ProcessOrderAction.php namespace App\Actions; class ProcessOrderAction { public function __invoke() { // } }
用例
单一动作类可以用于组织在应用程序不同部分重用的逻辑(如处理订单、用户注册等)。
make:dto
生成一个 数据传输对象(DTO)类。DTO 用于封装在应用程序各层之间传递的数据。
示例
php artisan make:dto UserDto
这会生成以下文件
// app/DTOs/UserDto.php namespace App\DTOs; class UserDto { public function __construct( // ) {} // Add your methods here }
用例
DTO 用于在不同层之间传递数据(例如,从控制器到服务),同时确保数据结构一致且不可变。
make:repository
创建一个 仓库 类,用于抽象数据访问逻辑。仓库通常在服务层中使用,以处理数据库操作,确保领域逻辑与数据源解耦。
示例
php artisan make:repository UserRepository
这会生成以下文件
// app/Repositories/UserRepository.php namespace App\Repositories; class UserRepository { public function all() { // Fetch all users } public function find($id) { // Find a user by ID } public function create(array $data) { // Create a new user } public function update($id, array $data) { // Update an existing user } public function delete($id) { // Delete a user } }
用例
仓库在业务逻辑和数据源之间提供了一个抽象层,允许开发者在不影响应用程序其余部分的情况下更换数据源。
make:service
创建一个 服务 类。服务包含应用程序的业务逻辑,通常调用仓库或其他服务以执行其操作。
示例
php artisan make:service PaymentService
这会生成以下文件
// app/Services/PaymentService.php namespace App\Services; class PaymentService { public function __construct() { // } // Add your methods here }
用例
服务类对于隔离业务逻辑、便于维护、测试和在应用程序的不同部分重用非常有用。
自定义占位符
如果您需要自定义 make:
命令生成的占位符,可以通过运行以下命令将占位符发布到您的 Laravel 项目中
php artisan vendor:publish --tag=make-extended-stubs
这将把存根发布到您的Laravel应用程序的resources/stubs/make-extended
目录。您可以根据需要修改这些存根,该包将使用自定义的存根而不是默认的存根。
示例
要自定义Service.stub
,您可以在以下位置找到文件:resources/stubs/make-extended/Service.stub
。
贡献
如果您想为此项目做出贡献,请随时提交pull请求或在GitHub上打开问题。贡献、建议和改进总是受欢迎的!
重要链接
- evotic网站:evotic.io
- Laravel文档:Laravel Docs
- CQRS模式:CQRS文档
- 数据传输对象(DTOs):DTO模式
许可证
此包受MIT许可证的许可。有关更多信息,请参阅LICENSE文件。