All Projects → rockancun → laravel_workflower

rockancun / laravel_workflower

Licence: other
Implementation of phpmentors-jp/workflower for laravel application

Programming Languages

PHP
23972 projects - #3 most used programming language
Blade
752 projects

Projects that are alternatives of or similar to laravel workflower

activiti-examples
Alfresco Process Services powered by Activiti Examples.
Stars: ✭ 58 (+123.08%)
Mutual labels:  bpmn, bpm, bpmn-engine
Jbpm
a Business Process Management (BPM) Suite
Stars: ✭ 1,226 (+4615.38%)
Mutual labels:  bpmn, bpm
Activiti
Activiti is a light-weight workflow and Business Process Management (BPM) Platform targeted at business people, developers and system admins. Its core is a super-fast and rock-solid BPMN 2 process engine for Java. It's open-source and distributed under the Apache license. Activiti runs in any Java application, on a server, on a cluster or in the…
Stars: ✭ 8,227 (+31542.31%)
Mutual labels:  bpmn, bpm
Kogito Runtimes
Kogito Runtimes - Kogito is a cloud-native business automation technology for building cloud-ready business applications.
Stars: ✭ 188 (+623.08%)
Mutual labels:  bpmn, bpm
workflower-bundle
A Symfony bundle for Workflower
Stars: ✭ 23 (-11.54%)
Mutual labels:  bpmn, bpm
Workflower
A BPMN 2.0 workflow engine for PHP
Stars: ✭ 540 (+1976.92%)
Mutual labels:  bpmn, bpm
Camunda Bpm Platform
Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Spring, Spring Boot, CDI.
Stars: ✭ 2,390 (+9092.31%)
Mutual labels:  bpmn, bpm
bpmn-js-token-simulation
A BPMN 2.0 specification compliant token simulator.
Stars: ✭ 130 (+400%)
Mutual labels:  bpmn, bpmn-engine
plg
A Business Processes and Logs Generator
Stars: ✭ 30 (+15.38%)
Mutual labels:  bpmn, bpm
bpmn-server
BPMN 2.0 server for Node.js , providing modeling, execution, persistence and monitoring for Workflow. along with sample UI. Intended to be developers workbench for BPMN 2.0
Stars: ✭ 70 (+169.23%)
Mutual labels:  bpmn, bpmn-engine
Uflo
UFLO是一款基于Spring的纯Java流程引擎,支持并行、动态并行、串行、会签等各种流转方式。
Stars: ✭ 514 (+1876.92%)
Mutual labels:  bpmn, bpm
bonita-engine
Deploy, execute, manage process-based applications made with Bonita studio or through Engine APIs
Stars: ✭ 123 (+373.08%)
Mutual labels:  bpmn, bpm
vtenext
vtenext the CRM for the Digital Innovation. It allows you to engage your customers into your business processes using a specific technology. It can also be used to manage processes generated by internal customers.
Stars: ✭ 22 (-15.38%)
Mutual labels:  bpmn, bpm
Smartflow Sharp
基于C#语言研发的Smartflow-Sharp工作流组件,该工作流组件的特点是简单易用、方便扩展、支持多种数据库访问、高度可定制化,支持用户按需求做功能的定制开发,节省用户的使用成本
Stars: ✭ 594 (+2184.62%)
Mutual labels:  bpmn, bpm
tumbleweed
Lightweight workflow engine microservice implement BPMN 2.0
Stars: ✭ 23 (-11.54%)
Mutual labels:  bpmn, bpm
Kogito Examples
Kogito examples - Kogito is a cloud-native business automation technology for building cloud-ready business applications.
Stars: ✭ 96 (+269.23%)
Mutual labels:  bpmn, bpm
awesome-camunda
a curated list of awesome Camunda BPM projects, libraries, tools, documentations, forum posts, etc.
Stars: ✭ 93 (+257.69%)
Mutual labels:  bpmn, bpm
micronaut-camunda-bpm
Integration between Micronaut and Camunda (Workflow Engine). We configure Camunda with sensible defaults, so that you can get started with minimum configuration: simply add a dependency in your Micronaut project to embed the workflow engine!
Stars: ✭ 73 (+180.77%)
Mutual labels:  bpmn, bpm
jbpm-spring-boot
Sample of a jbpm service with spring boot. It runs on OpenShift and it has prometheus metrics and a grafana dashboard
Stars: ✭ 16 (-38.46%)
Mutual labels:  bpmn, bpm
vPAV
viadee Process Application Validator
Stars: ✭ 47 (+80.77%)
Mutual labels:  bpmn

Workflower with laravel. A Bussines Process Implementation with PHP

Table of Contents

Introduction

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.

Installation

Run composer install and and php artisan migrate command.

The workflow diagram

documentation/img/pullrequest_process.png

Sourcecode

Workflow implementations

The class Process does the magic and we focus in this.

This class needs three class to work.

  1. A WorkItemContextInterface implementation (PullRequestWorkflow). This class has the workflow bpmn file name saved in the storage/app/process path.
  2. A Bpmn2WorkflowRepository implementation (WorkflowRepository). The phpmentors-jp/workflower has an implementation but is useless for laravel projects.
  3. A MergePullRequestOperationRunner implementation (MergePullRequestOperationRunner). This class contains the logic used by the service task merge PR. For laravel projects you most consider replace service task for simple task and use Jobs.

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;

Laravel

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.

Screenshots

lista de pullrequest creados

documentation/img/index.png

documentation/img/index.png

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].