evheniy/simple-task-fsm-bundle

SimpleTaskFSMBundle 允许在您的应用程序中使用 FSM 任务运行器。

安装次数: 10,929

依赖关系: 0

建议者: 0

安全性: 0

星标: 1

关注者: 3

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.0 2015-06-03 16:41 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:00:00 UTC


README

本插件提供了在应用程序中使用 FSM 任务运行器的功能。

knpbundles.com

Latest Stable Version Total Downloads Latest Unstable Version License

Scrutinizer Code Quality Build Status

Build Status

安装

$ composer require evheniy/simple-task-fsm-bundle "1.*"

或者添加到 composer.json 文件中

"evheniy/simple-task-fsm-bundle": "1.*"

AppKernel

public function registerBundles()
{
    $bundles = array(
        ...
        new Evheniy\SimpleTaskFSMBundle\SimpleTaskFSMBundle(),
    );
    ...

文档

要使用 SimpleTaskFSMBundle,您需要创建状态类。

例如 AppBundle/FSM/StateInit

<?php

namespace AppBundle/FSM;

use Evheniy\SimpleTaskFSMBundle\StateAbstract;

class StateInit extends StateAbstract
{

    /**
     * @throw \Evheniy\SimpleTaskFSMBundle\Exception\StateException
     */
    public function run()
    {
        //do something...
    }
}

然后使用这些状态类创建 FSM 管理器(例如在 Command 中)

use Evheniy\SimpleTaskFSMBundle\FSM;

并且

$fsm = new FSM(array(new StateInit()));
foreach($fsm as $state) {
    $state->run();
}

或者

$fsm = new FSM(array(new StateInit()));
$fsm->rewind();
while($fsm->valid()) {
    $fsm->current()->run();
    $fsm->next();
}

如果您遇到异常(您可以使用 Evheniy\SimpleTaskFSMBundle\Exception\StateException)并且需要重新启动步骤

$fsm = new FSM(array(new StateWithError()));

$fsm->rewind();
while($fsm->valid()) {
    try {
        $fsm->current()->run();// function run() throws StateException
        $fsm->next();
    } catch (StateException $e) {
        //do something
    }
}

您可以使用许多状态,并且它们将依次运行。

$fsm = new FSM(array(new StateInit(), new StateMainTask(), new StateFinish()));

许可证

本插件遵循 MIT 许可协议。

俄语文档