定制 ananiaslitz/state-machine 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ananiaslitz/state-machine

最新稳定版本:v0.0.1

Composer 安装命令:

composer require ananiaslitz/state-machine

包简介

README 文档

README

StateMachine é uma biblioteca PHP para gerenciar máquinas de estados com a facilidade de configuração através de arquivos YAML. Com suporte adicional para a visualização da máquina de estados usando Graphviz.

Instalação

Para instalar a biblioteca, você pode usar o composer:

composer require ananiaslitz/state-machine

Uso Básico

1- Defina suas regras e estados no state-machine.yaml:

Exemplo de 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 - Utilize a biblioteca em seu código:

require 'vendor/autoload.php';

$loader = new StateMachineLoader();
$data = $loader->createStateMachines();

Geração de Diagrama da Máquina de Estados

Para visualizar a máquina de estados, você pode gerar um diagrama utilizando o Graphviz.

Pré-requisitos:

Instale o Graphviz:

Para sistemas baseados em Debian/Ubuntu:

sudo apt-get install graphviz

Uso:

Para gerar o diagrama, execute:

php /vendor/bin/state-machine [formato]

Onde [formato] é opcional e pode ser png, svg, pdf, etc. Se nenhum formato for fornecido, será gerado um PNG por padrão.

Exemplo:

php /vendor/bin/state-machine [formato]

Após a execução, um arquivo de diagrama (por exemplo, state_machine.png) será gerado na raiz do seu projeto.

Contribuição

Sinta-se à vontade para abrir issues ou enviar pull requests. Sua colaboração é bem-vinda!

Licença

MIT License

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-08-25