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
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-08-10