ananiaslitz / state-machine
v0.0.1
2023-08-25 17:31 UTC
Requires
- symfony/yaml: ^6.3
README
StateMachine 是一个用于管理状态机的 PHP 库,可以通过 YAML 文件轻松配置。同时支持使用 Graphviz 进行状态机的可视化。
安装
要安装此库,您可以使用 composer
composer require ananiaslitz/state-machine
基本使用
1- 在 state-machine.yaml 中定义您的规则和状态
state-machine.yaml 示例
workflows: first_workflow: initialState: "idle1" states: - name: "idle1" - name: "running1" - name: "stopped1" transitions: - name: "start1" from: "idle1" to: "running1" rules: - "Ananiaslitz\\StateMachine\\Rules\\IsUrgentRule::class"
2 - 在您的代码中使用此库
require 'vendor/autoload.php'; $loader = new StateMachineLoader(); $data = $loader->createStateMachines();
状态机图生成
为了可视化状态机,您可以使用 Graphviz 生成一个图表。
先决条件
安装 Graphviz
对于基于 Debian/Ubuntu 的系统
sudo apt-get install graphviz
用法
要生成图表,请执行以下命令
php /vendor/bin/state-machine [formato]
其中[格式]是可选的,可以是 png、svg、pdf 等。如果没有提供格式,则默认生成 PNG。
示例
php /vendor/bin/state-machine [formato]
执行后,将在您的项目根目录下生成一个图表文件(例如,state_machine.png)。
贡献
请随时提出问题或发送 pull request。您的贡献受到欢迎!
许可证
MIT 许可证