ananiaslitz/state-machine

v0.0.1 2023-08-25 17:31 UTC

This package is auto-updated.

Last update: 2024-09-30 01:52:30 UTC


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 许可证