slava-basko/finite-state-machine
最新稳定版本:1.0.0
Composer 安装命令:
composer require slava-basko/finite-state-machine
包简介
README 文档
README
PHP State Machine.
Control transition of your entity from one state to another.
$stateDraft = new State('draft'); $stateReview = new State('review'); $stateApproved = new State('approved'); $stateRejected = new State('rejected'); $stateEditing = new State('editing'); $statePublished = new State('published'); $transitionToReview = new Transition('to_review', [$stateDraft, $stateEditing], $stateReview); $transitionToApproved = new Transition('to_approved', [$stateReview], $stateApproved); $transitionToRejected = new Transition('to_rejected', [$stateReview], $stateRejected); $transitionToEditing = new Transition('to_editing', [$stateReview], $stateEditing); $transitionToPublished = new Transition('to_published', [$stateApproved], $statePublished); class Post { public $state = 'draft'; } $stateMachine = new StateMachine( function (Post $post) { return new State($post->state); }, function (Post $post, StateInterface $newState) { $post->state = $newState->getName(); } ); $stateMachine->addTransitions([ $transitionToReview, $transitionToApproved, $transitionToRejected, $transitionToEditing, $transitionToPublished, ]); $post = new Post(); $stateMachine->transition('to_review', $post); // Ok $stateMachine->transition('to_published', $post); // NoSuitableTransitionException
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-04
