linkorb/flow

Flow:超轻量级的事件源、状态管理和投影库

v1.1.3 2019-01-27 08:01 UTC

This package is auto-updated.

Last update: 2024-08-27 20:11:15 UTC


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

顺便说一句,我们在招聘!