processmaker / docker-executor-php
ProcessMaker 4 的 PHP 脚本执行器
1.2.0
2023-04-29 06:11 UTC
This package is auto-updated.
Last update: 2024-09-14 22:01:18 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/