gupalo/bpmnworkflow

v1.0.21 2022-05-15 05:56 UTC

README

安装

composer require gupalo/bpmnworkflow

示例

注册扩展

    $walker = new ProcessWalker(new ExtensionHandler([
        new DiscountProcedure(),
        new WithoutDiscountProcedure(),
        new PriceFunction(),
        new LocaleFunction(),
        new EqValueComparison(),
        new LessValueComparison(),
        new MoreValueComparison(),
    ]));

加载 bpmn

    $loader = (new BpmnDirLoader(__DIR__ . '/../BpmnDiagrams')

上下文

    $cart = new Example\Cart\Cart(
        items: ['name' => 'cola', 'price' => 800],
        locale: 'en',
        price: 800,
    );
    $context = new DataContext($cart);

遍历器

    $workflow = new Workflow($loader, $walker);
    $this->workflow->walk('cart_discount', $context);

测试

在主应用中进行测试需要安装 require-dev 依赖

composer require phpunit/phpunit --dev

将 composer.json 中的 autoload-dev 部分添加进去

"autoload-dev": {
    "psr-4": {
        "Gupalo\\BpmnWorkflow\\Tests\\": "vendor/gupalo/bpmnworkflow/tests/"
    }
}

执行

composer dump-autoload
php vendor/bin/phpunit vendor/gupalo/bpmnworkflow