Provides the PHP API/SPI for the Serverless Workflow Specification.
With the SDK you can:
- Programmatically build workflow definitions
- Parse workflow JSON and YAML definitions
- Validate workflow definitions
Current SDK version conforms to the Serverless Workflow specification 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',
]),
],
]);
$workflow = Workflow::fromJson(file_get_contents('workflow.json'));
$workflow = Workflow::fromYaml(file_get_contents('workflow.yaml'));
$json = $workflow->toJson();
$yaml = $workflow->toYaml();
use Serverless\Workflow\WorkflowValidator;
WorkflowValidator::validate($workflow);
The validate
method will raise an exception if the provided workflow does not comply with the specification.