tbbc / symfony-cqrs-edition
大智慧公司 "Symfony CQRS 版本"
Requires
- php: >=5.3.3
- beberlei/lite-cqrs: 1.1.x-dev
- doctrine/doctrine-bundle: 1.2.*
- doctrine/orm: >=2.2.3,<2.4-dev
- incenteev/composer-parameter-handler: ~2.0
- rhumsaa/uuid: ~2
- sensio/distribution-bundle: 2.3.*
- sensio/framework-extra-bundle: 2.3.*
- sensio/generator-bundle: 2.3.*
- symfony/monolog-bundle: 2.3.*
- symfony/swiftmailer-bundle: 2.3.*
- symfony/symfony: 2.3.*
- tbbc/composer-javascript: dev-master
- twig/extensions: 1.0.*
Requires (Dev)
- doctrine/data-fixtures: dev-master
- doctrine/doctrine-fixtures-bundle: dev-master
- fzaninotto/faker: ~1.2
Replaces
- tbbc/symfony-standard-cqrs: dev-master
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. 贡献
- 查看 问题列表。
- 分支
- 编写测试(针对新功能或错误)
- 创建 PR
5. 作者
- Boris Guéry - guery.b@gmail.com - @borisguery - http://borisguery.com
- 本杰明·杜劳 - benjamin.dulau@gmail.com - @delendial - http://benjamindulau.com
6. 许可证
大智慧公司 - Symfony CQRS 版本
采用 MIT 许可证 - 详细信息请查看 LICENSE 文件