processmaker/docker-executor-php

ProcessMaker 4 的 PHP 脚本执行器

1.2.0 2023-04-29 06:11 UTC

README

docker build -t processmaker4/executor-php:latest .

executor-php

带有 PHP 运行时的脚本任务执行引擎

这个 Docker 镜像提供了一个沙盒化的受保护环境来运行 ProcessMaker 4 中编写的自定义 PHP 脚本。用户创建的脚本任务应该是隔离的,但可以访问一些实用工具以完成最常见任务。此 PHP 环境提供了可用的 PHP 包和自动加载,因此脚本任务可以利用以下库:

  • guzzlehttp/guzzle: ~6.0
  • TODO:识别现有脚本任务中使用的最常见库

如何使用

执行需要主机系统上存在 data.json、config.json 和 output.json 文件。data.json 表示请求实例数据。config.json 表示此脚本任务特定的配置。output.json 应该是一个空文件,脚本任务成功输出将填充此文件。脚本任务由 script.php 文件表示。调用者负责在通过命令行(或 Docker API)执行引擎之前准备好这些文件。

脚本任务设计

编写脚本任务时,有三个变量可用。它们是:

  • $data - 一个 PHP 关联数组,表示从 data.json 加载的数据
  • $config - 一个 PHP 关联数组,表示从 config.json 加载的配置
  • $client - 预配置为通过 OAuth 认证访问 API 的 ProcessMaker 4 PHP SDK 客户端

您的脚本应快速执行。脚本完成后,您的返回语句将被使用并转换为 JSON,存储在 output.json 文件中。Docker 执行完成后,您应该检查 Docker 执行的返回代码。如果代码为 0,则脚本任务执行成功,您可以读取 output.json 获取有效输出。如果它不是零,则您应检查 STDERR 以查看执行期间显示的错误。

示例 data.json

{
  "firstname": "Taylor"
}

示例脚本任务

<?php
// Uppercase the entire firstname attribute
$data['firstname'] = strtoupper($data['firstname']);
// Return it
return $data;

示例 output.json

{"firstname":"TAYLOR"}

命令行使用

$ docker run -v <path to local data.json>:/opt/executor/data.json \
  -v <path to local config.json>:/opt/executor/config.json \
  -v <path to local script.php>:/opt/executor/script.php \
  -v <path to local output.json>:/opt/executor/output.json \
  processmaker/executor:php \
  php /opt/executor/bootstrap.php

许可协议

根据AGPL 版本 3分发

ProcessMaker (C) 2002 - 2020 ProcessMaker Inc.

更多信息请访问:http://www.processmaker.com/