为Serverless Workflow规范提供PHP API/SPI。
1.0.0
2023-11-25 16:39 UTC
Requires
- phpdocumentor/reflection-docblock: ^5.3
- swaggest/json-schema: ^0.12.42
- symfony/yaml: ^6.3
Requires (Dev)
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^10.4
- rector/rector: ^0.18.10
- symplify/easy-coding-standard: ^11.1
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
方法将抛出异常。