linkorb / flow
Flow:超轻量级的事件源、状态管理和投影库
v1.1.3
2019-01-27 08:01 UTC
Requires (Dev)
- dbtk/schema-loader: ^2.0
- phpstan/phpstan: ^0.11.1
- symfony/dotenv: ^4.0
- symfony/yaml: ^4.0
README
Flow是一个轻量级的事件源、状态和投影框架。
特性
- 事件只是多维数组。无需学习或遵守自定义对象模型
- 投影器易于编写,并操作数组数据
- 包含简单的状态管理,并具有基于状态的项目器基类
- 广泛使用接口,因此EventStores、Projectors和State Stores都可以轻松替换和优化
- 内存和数据库支持的事件和状态存储
- 旨在作为事件驱动应用程序的库使用
示例
“example/”目录包含一个包含事件、投影器等的简单示例。
您可以通过执行以下命令来运行它:
php example/example.php
它将在标准输出上以JSON格式输出相关实体的状态。
数据库初始化
该示例还可以使用数据库支持的事件和状态存储执行。使用以下命令初始化您的数据库:
./vendor/bin/dbtk-schema-loader schema:load example/schema.xml mysql://user:password@localhost/flow --apply
数据库配置
示例脚本从环境变量FLOW_EXAMPLE_DSN
加载其数据库配置。最简单的方法是将.env.dist
复制到.env
,并根据您的数据库设置更新配置。
如果存在.env
,则其配置将自动加载到环境变量中
如果没有定义FLOW_EXAMPLE_DSN
,则将使用内存(数组)基础的事件和状态存储。这些存储速度更快,但不支持持久性,并且不如数据库支持的存储扩展性好。
许可证
MIT(请参阅LICENSE.md)
由LinkORB工程技术团队提供
查看我们的其他项目:linkorb.com/engineering。
顺便说一句,我们在招聘!