ananiaslitz / state-machine
v0.0.1
2023-08-25 17:31 UTC
Requires
- symfony/yaml: ^6.3
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