gupalo / bpmnworkflow
BPMN 工作流
v1.0.21
2022-05-15 05:56 UTC
Requires
- php: >=8.1
- ext-mbstring: ^8.0
- ext-simplexml: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
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