awerd/process
Composer 安装命令:
composer require awerd/process
包简介
Awesome State Machine Library
README 文档
README
Awesome State Machine Library
use Awerd\Process\StateMachine; use Awerd\Process\Transition; use Awerd\Process\State; class DomainObject { public $state = 'initial'; } $object = new DomainObject(); $stateMachine = new StateMachine($object); $stateMachine->setGetter(function (DomainObject $object) { return $object->state; }); $stateMachine->setSetter(function (DomainObject $object, Transition $transition) { $object->state = $transition->to->name; }); $stateMachine->addState($initial = new State('initial')); $stateMachine->addState($working = new State('working')); $stateMachine->addState($complete = new State('complete')); $stateMachine->addTransition($initialWorking = new Transition('initial-working', $initial, $working)); $stateMachine->addTransition($workingComplete = new Transition('working-complete', $working, $complete)); $stateMachine->addTransition($completeWorking = new Transition('complete-working', $complete, $working)); var_dump($stateMachine->getCurrentState()->name); // initial var_dump($stateMachine->canTransit($initialWorking)); // true var_dump($stateMachine->canTransit($workingComplete)); // false var_dump($stateMachine->availableTransitions()); // [$initialWorking] $stateMachine->transit($initialWorking); var_dump($stateMachine->getCurrentState()->name); // working
统计信息
- 总下载量: 15
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-05-19