evotic/make-extended

Laravel artisan make 命令的扩展

1.1.0 2024-09-06 23:33 UTC

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:actionmake:dtomake:repositorymake:service 等有用的 Artisan 命令。
  • 关注点分离:通过提供 DTO、动作和仓库,促进 CQRS 和 DDD(领域驱动设计)等干净的架构模式。
  • 可扩展性:易于自定义生成文件的占位符。有关更多信息,请参阅自定义占位符部分。
  • 无缝集成:从 9.x 版本开始,与现有 Laravel 项目无缝工作。

安装

要安装 Laravel Make Extended 包,请按照以下步骤操作

  1. 通过 Composer 安装:

    运行以下命令通过 Composer 安装包

    composer require evotic/make-extended
  2. 发布配置(可选):

    如果您想自定义包的任何方面,您可以发布配置文件

    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上打开问题。贡献、建议和改进总是受欢迎的!

重要链接

许可证

此包受MIT许可证的许可。有关更多信息,请参阅LICENSE文件。