enfil/laravel-ddd-cqrs-modules

dev-master 2023-04-18 12:30 UTC

This package is auto-updated.

Last update: 2024-09-19 10:08:13 UTC


README

为了分解系统,建议识别有界业务逻辑上下文,并将它们分别分离成独立的模块

每个模块应负责一个相关上下文,并具有定义的目录结构,以确定核心层

此包基于 nwidart/laravel-modules 构建,并生成以下模块结构

域 - 域层

  • Src
  • 实体
  • 用例
  • 仓库
  • 服务

应用 - 应用层

  • API
  • 服务
  • 控制台
  • 监听器
  • 提供者

基础设施 - 基础设施层

  • 配置
  • 数据库
  • 仓库
  • 读取模型

展示 - 展示层

  • HTTP
    • 控制器
    • 请求
    • 中间件

测试

安装

需要包

composer require enfil/laravel-ddd-cqrs-modules codeception/codeception codeception/module-asserts codeception/module-phpbrowser

发布包的配置

php artisan vendor:publish --provider="Enfil\Laravel\DddCqrs\Modules\LaravelModulesServiceProvider"

将此行添加到 composer.json 自动加载

"autoload": {
  "psr-4": {
    ...
    "Modules\\": "modules/",
    ...
  }
},

用法

例如,让我们以评论模块的 评论 为例。

假设主要实体的列表如下

  • 评论
  • 作者

模块生成和 CRUD

module:make-structure {MODULE_NAME} {ENTITY_NAMES*}

让我们运行命令。

创建新模块

php artisan module:make-structure Comments Comment Author

该命令应生成模块结构,创建主要实体,仓库接口,读取模型,服务,控制器,请求,配置,迁移,以及一个路由

现在您可以访问端点 http://localhost/comments/v1/ 并看到此消息

{"data":{"message":"Comment - module index"}}