adachsoft/workflow-definition-repository-json

JSON-based workflow definition repository (SPI) for adachsoft/workflow

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Forks: 0

pkg:composer/adachsoft/workflow-definition-repository-json

v0.1.0 2025-10-06 07:23 UTC

This package is not auto-updated.

Last update: 2025-10-07 03:36:33 UTC


README

A framework-agnostic JSON-based repository for workflow definitions compatible with AdachSoft Workflow SPI.

Package name: adachsoft/workflow-definition-repository-json

Installation

Require packages:

  • adachsoft/workflow ^0.2.0
  • adachsoft/collection ^2.1
  • adachsoft/filesystem ^1.1

Composer autoload:

{
  "autoload": { "psr-4": { "AdachSoft\\WorkflowDefinitionRepositoryJson\\": "src/" } }
}

Quick Start

use AdachSoft\FileSystem\PhysicalFileSystem;
use AdachSoft\WorkflowDefinitionRepositoryJson\PublicApi\Config\JsonRepositoryConfig;
use AdachSoft\WorkflowDefinitionRepositoryJson\Provider\WorkflowDefinition\JsonFilesystemWorkflowDefinitionRepository;
use AdachSoft\WorkflowDefinitionRepositoryJson\Provider\WorkflowDefinition\Mapper\JsonToSpiWorkflowDefinitionMapperDefault;
use AdachSoft\WorkflowDefinitionRepositoryJson\Provider\WorkflowDefinition\Validator\WorkflowJsonRuntimeValidatorDefault;
use AdachSoft\Workflow\PublicApi\Builder\WorkflowModuleBuilderDefault;

$fs = new PhysicalFileSystem(__DIR__);
$config = new JsonRepositoryConfig(baseDir: __DIR__ . '/workflows', fileExtension: '.json', prettyPrint: true);
$mapper = new JsonToSpiWorkflowDefinitionMapperDefault();
$validator = new WorkflowJsonRuntimeValidatorDefault();

$repo = new JsonFilesystemWorkflowDefinitionRepository($fs, $mapper, $validator, $config);

$facade = WorkflowModuleBuilderDefault::create()
    ->withDefinitionRepositorySpi($repo)
    ->build();

Or use the factory:

use AdachSoft\WorkflowDefinitionRepositoryJson\PublicApi\Factory\WorkflowSpiJsonRepositoryFactory as Factory;
$repo = Factory::createWithPhysicalFs(__DIR__);

See examples/ for runnable samples.