camundity / phpzeebe
PHP客户端,用于Zeebe工作流引擎(https://zeebe.io)
8.0.4
2022-08-12 10:24 UTC
Requires
- php: >=7.1
- ext-grpc: *
- google/protobuf: ^3.9.1
- grpc/grpc: ^1.22
This package is not auto-updated.
Last update: 2024-09-21 00:46:10 UTC
README
Camunda 8引擎的客户端,Zeebe (https://zeebe.io) - 用于微服务编排的工作流引擎。
此客户端基于从PHP文件生成的Zeebe网关protobuf定义。
构建针对其他目标版本的客户端。
您可以通过更改Makefile中的版本号来修改Zeebe的目标版本。
然后您可以运行它
make build-client
使用方法
Camunda 8由Zeebe引擎(gRPC)、Tasklist(GraphQL)、Operate(Rest)和Optimize(Rest)组成。在一个自管理的集群中,您还会有其他一些组件(Identity、Keycloak和Elastic)。此客户端的目的是专门通过gRPC与Zeebe通信。它仍然是一个alpha版本,一些主要功能仍然缺失(欢迎贡献)。
最常见的用例是实例化流程、发送消息并处理服务任务。我已经构建了一个Laravel项目来演示如何实现,但您也可以考虑使用微服务方法。
构建工作进程
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); } }
创建客户端并使用它
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示例
在Laravel中的快速使用示例:https://github.com/chDame/phpzeebe-laravel-example 工作进程作为作业执行。