承接 awerd/process 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-05-19

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固