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