tbbc/symfony-cqrs-edition

大智慧公司 "Symfony CQRS 版本"

dev-master / 1.0.x-dev 2014-07-27 02:14 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:32:19 UTC


README

一个面向 CQRS 和 Symfony 的项目默认结构

里面有什么?

待办事项

要求

  • PHP >= 5.3.3

1. 快速入门

1.1 如果尚未安装,请安装 composer

Composer 安装说明

1.2 使用 composer 创建新项目

$ php composer.phar create-project -s dev tbbc/symfony-cqrs-edition path/to/install dev-master

Composer 将在 path/to/install 目录下安装项目和所有依赖项。

注意 1因为它还不稳定,您必须显式设置 dev-master 版本。

1.3 访问项目 URL

Composer 安装完成后,访问浏览器中的项目 URL 以获取更多说明!

2. 概述

2.1 项目结构

DDD(领域驱动开发)和 CQRS(命令/查询责任分离)旨在关注领域(即:您的业务)。

此项目结构试图正确地分离技术方面和实际业务逻辑。

基于之前的实验、面向对象范式和 DDD 最佳实践,我们已定义了应用的三层主要“层”。

2.1.1 领域

它收集实际业务逻辑和业务规则,不包含任何框架实现

此层根据 CQRS 缩写分为两部分。

命令层是某种写层,负责更新领域的状态,而查询负责报告。

2.1.2 基础设施

基础设施与任何不属于您的领域且可互换的组件相关。这可以是 Doctrine/DBAL 存储库、Mailer 服务或任何第三方适配器。这里也是我们在领域和任何 MVC 框架之间做粘合的地方。

2.1.3 UI

CQRS/DDD 主要关注“基于任务的 UI”,这意味着任务通常映射到领域的实际命令。UI(用户界面)通常是具有 HTML 视图的网站,但也可能是任何 CLI 命令甚至 REST API。

2.1.4 默认结构

src
└── Acme
    └── Task
        ├── Command
        ├── Domain
        │   ├── Event
        │   ├── Handler
        │   ├── Model
        │   └── Repository
        ├── Infrastructure
        │   ├── InfrastructureBundle
        │   └── Persistence
        ├── Query
        │   ├── EventHandler
        │   ├── Repository
        │   └── ViewModel
        └── Ui
            ├── CliBundle
            ├── SharedBundle
            └── WebBundle

在 Symfony CQRS 版本中,InfrastructureBundle 是应用程序的核心。它是领域和实际 Symfony 框架之间的粘合剂。

UI 层包含所有控制器,以及视图、主题或任何将作为容器参数传递给领域的配置。

注意“命令”一词可能同时适用于 CLI 命令和 CQRS 中的命令,不应将其混淆,因为它涉及两个不同的概念。

3. 开始使用 CQRS

待办事项

4. 贡献

  1. 查看 问题列表
  2. 分支
  3. 编写测试(针对新功能或错误)
  4. 创建 PR

5. 作者

6. 许可证

大智慧公司 - Symfony CQRS 版本 采用 MIT 许可证 - 详细信息请查看 LICENSE 文件

The Big Brains Company - Logo