This project is an example of https://github.com/phpmentors-jp/workflower BPMN 2.0 workflow engine and Laravel 5.8 Framework integration.
I used https://github.com/77web/workflower-bundle-playground example as basis.
The bpmn file can be viewed and edited with comunda modeler. The service tasks are not supported by the visual editor but you can edit directly in the source code.
Run composer install and and php artisan migrate command.
The class Process does the magic and we focus in this.
This class needs three class to work.
Additionally to this classes I create the class Workflow/Entities/PullRequest that implements ProcessContextInterface and WorkflowSerializableInterface interfaces. This class it is a data structure that has the necessary data for the workflow to work.
With this classes create a Process instance.
$repository = new WorkflowRepository();
$pullRequestWorkflow = new PullRequestWorkflow();
$operationRunner = new MergePullRequestOperationRunner();
$process = new Process($pullRequestWorkflow, $repository, $operationRunner);
We set the instance in the Usecase class and pass the Pullrequest instance in the run method.
$usecase = new CreatePullRequestUsecase();
$usecase->setProcess($process); // createProcess() method in the controller class
$entity = $usecase->run($pullrequest); // $entity attribute in the controller class
return $entity;
For persistence I create a eloquent model Models/PullRequest. This class save the data in the database including the serialized workflow.
The PullRequestController is the application's start point. This class makes the calls to the workflower engine through Usecase classes.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。