为Serverless Workflow规范提供PHP API/SPI。

1.0.0 2023-11-25 16:39 UTC

This package is auto-updated.

Last update: 2024-09-25 19:03:37 UTC


README

Serverless Workflow规范提供PHP API/SPI。

使用SDK,您可以

  • 以编程方式构建工作流定义
  • 解析工作流JSON和YAML定义
  • 验证工作流定义

状态

当前SDK版本符合Serverless Workflow规范v0.8

安装

composer install serverlessworkflow/sdk

构建

use Serverless\Workflow\Action;
use Serverless\Workflow\ActionDataFilter;
use Serverless\Workflow\FunctionDef;
use Serverless\Workflow\FunctionRef;
use Serverless\Workflow\OperationState;
use Serverless\Workflow\Workflow;

$workflow = new Workflow([
    'id' => 'greeting',
    'name' => 'Greeting Workflow',
    'description' => 'Greet Someone',
    'version' => '1.0',
    'specVersion' => '0.8',
    'start' => 'Greet',
    'states' => [
        new OperationState([
            'name' => 'Greet',
            'type' => 'operation',
            'actions' => [
                new Action([
                    'functionRef' => new FunctionRef([
                        'refName' => 'greetingFunction',
                        'arguments' => [
                            'name' => '${ .person.name }',
                        ],
                    ]),
                    'actionDataFilter' => new ActionDataFilter([
                        'results' => '${ .greeting }',
                    ]),
                ]),
            ],
            'end' => true,
        ]),
    ],
    'functions' => [
        new FunctionDef([
            'name' => 'greetingFunction',
            'operation' => 'file://myapis/greetingapis.json#greeting',
        ]),
    ],
]);

解析

从JSON/YAML源转换

$workflow = Workflow::fromJson(file_get_contents('workflow.json'));

$workflow = Workflow::fromYaml(file_get_contents('workflow.yaml'));

转换为JSON/YAML

$json = $workflow->toJson();

$yaml = $workflow->toYaml();

验证

use Serverless\Workflow\WorkflowValidator;

WorkflowValidator::validate($workflow);

如果提供的工作流不符合规范,validate方法将抛出异常。