定制 camundity/phpzeebe 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

camundity/phpzeebe

最新稳定版本:8.0.4

Composer 安装命令:

composer require camundity/phpzeebe

包简介

PHP Client for zeebe workflow engine (https://zeebe.io)

README 文档

README

Client for the Camunda 8 engine, Zeebe (https://zeebe.io) - A Workflow Engine for Microservices Orchestration.

This client is based on PHP files generated from Zeebe gateway protobuf definition.

building the client for another target version.

You can modify the Zeebe target version by changing the version number inside the Makefile.

You can then run it :

make build-client

Usage

Camunda 8 is composed of the Zeebe engine (gRPC), Tasklist (GraphQL), Operate (Rest) and Optimize (Rest). On a Self-Managed cluster, you would also have some other components (Identity, Keycloak and Elastic). The goal of this client is exclusively to communicate with Zeebe through gRPC. It's still an alpha version an major features are still missing (Contributions welcome).

Most common use case would be to instantiate processus, send a message and work on service task. I've built a Laravel project to demo how it could be implemented but you could also imagine a microservices approach.

building a worker

use Camundity\PhpZeebe\ZeebeWorker;

class SelectAssigneeWorker extends ZeebeWorker {
	
	public function __construct($zeebeClient) {
		parent::__construct($zeebeClient);
		$this->setType("selectAssignee");
    }
	
	
	public function executeTask($activatedJob){
		$variables = $this->getVariables($activatedJob);
		var_dump($variables);
		$variables["assignee1"] = "toto";
		$this->complete($activatedJob, $variables);
	}
}

Creating a client and using it

require_once __DIR__ . '/vendor/autoload.php';
require_once('SelectAssigneeWorker.php');
require_once('MailWorker.php');
use Camundity\PhpZeebe\ZeebeClient;

$client = new ZeebeClient("XXX");
$client->saasAuth("XXX", "XXX");

$client->deployProcess("camunda-process.bpmn");

$client->runInstance("camunda-process2","latest", ["var1"=>"something"]);
$client->publishMessage("messageName","correlationKey", ["var2"=>"someOtherValue"]);

$worker2 = new MailWorker($client);
$worker2->work();
$worker = new SelectAssigneeWorker($client);
$worker->workLoop(); //blocking thread

Laravel example

A quick example of use in Laravel : https://github.com/chDame/phpzeebe-laravel-example Workers are executed as jobs.

统计信息

  • 总下载量: 3.22k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 9
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-08-10