Factory

Die \Alvine\Application\Workflow\Factory-Klasse erlaubt es über die Methode Factory::build(\Alvine\Application\Workflow\Processor $processor) neue Container zu erstellen.

Die konkrete Erstellung eines Containers erfolgt über die Klasse Admission.

Die einzelne Schritte können in der Admission-Klasse definiert werden.

Die Methode Factory::getInstance($arguments) erlaubt es eine \Alvine\Types\Map anzugeben. Die einzelnen Einträge der Map, werden an alle erstellten Container angehängt.

// Diese Argumente werden an jeden Container 
// angehängt.
$arguments=new \Alvine\Types\Map();
$arguments->setValue('key1', 'value1');
$arguments->setValue('key2', 'value2');

// Faktory
$factory=\Alvine\Application\Workflow\Factory::getInstance($arguments);

// Workflow-Klasse
$processor=new \Alvine\Application\Workflow\Processor('my-workflow');

// Status
$state=new \Alvine\Application\Workflow\State('init');

// Admission (Erstellungsvorschrift) setzen
$admission=new \Alvine\Application\Workflow\Admission(\Alvine\Application\Workflow\Container\Dataset::class, $state);
$processor->setAdmission($admission);

// Container erstellen
$containers=$factory->build($processor);

// Erster Container
$container=$containers->current();


echo $container->key1."\n";
// Ausgabe: value1

echo $container->key2."\n";
// Ausgabe: value2