morebec / orkestra
Orkestra 是一个用于创建 CQRS 应用程序的架构和基础设施辅助库
1.0.1
2020-11-05 23:11 UTC
Requires
- php: >=7.3
- ext-json: *
- cakephp/chronos: ^2.0
- doctrine/instantiator: 1.*
- php-di/phpdoc-reader: 2.*
- ramsey/uuid: ^4.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpstan/phpstan: ^0.12.7
- phpunit/phpunit: ^8.5
- symfony/var-dumper: 5.*
This package is auto-updated.
Last update: 2024-09-27 02:16:27 UTC
README
Orkestra 是一个有偏见的框架,我们在 Morebec 内部开发新产品时,在架构设计上提出了许多建议。它还提供了技术工具,以快速创建易于维护和扩展的产品。
在核心上,Orkestra 提供了 DDD、CQRS 和事件源实用工具。
Orkestra 允许快速开发产品和应用,同时保持标准化的方法,易于理解和改进。
为什么选择 Orkestra
鉴于 Morebec 当前的性质,即独立软件开发,为了向客户提供价值,我们需要有一种在项目之间相似的结构,同时提供一种可以经受时间考验和扩展的稳定平台。
构建面向公众生产的应用程序本身就是一项挑战,需要大量的思考和准备。
为了确保我们始终能够提供相同的质量水平,同时为客户的潜在扩展做好准备,Orkestra 作为一个技术和思维框架,帮助我们实现这些目标。
从技术角度来看,Orkestra 尽可能地保持不干扰,主要通过接口来表示它试图满足的概念性契约。可扩展和有弹性的 CQRS 和事件源需要大量的管道,很容易出错,因此它提供了这些契约的默认实现,尽可能保持在不同层(应用程序、领域和基础设施)的边缘。这一套接口允许不同项目在需要时扩展框架,同时仍然与 Orkestra 框架及其生态系统兼容。
特性
- 领域驱动设计构建块。
- 命令查询责任分离(CQRS)构建块。
- 事件源构建块。
- 应用程序内消息传递。
- 基于责任链模式(中间件管道)
- 默认同步处理。
- 使用工作器和调度进行异步处理。
- 调度支持。
- 具有关联性和因果追踪的跟踪。
- 显式个人信息服务接口。
安装
要包含 Orkestra 在您的项目中,强烈建议使用 composer
。
运行以下 composer 命令
$ composer require `morebec/orkestra`
适配器
Orkestra 依赖于适配器来向基类添加功能。
- OrkestraSymfonyBundle - 集成 Orkestra 和 Symfony
- OrkestraMongoDbAdapter - 为 Orkestra 服务添加 MongoDB 存储支持
使用 && 文档
有关如何使用 Orkestra 及其核心原则的文档,请参阅 docs/
目录。