Skip to content

Commit ce18c3b

Browse files
committed
[Workflow] Added a context to Workflow::apply()
1 parent 879482b commit ce18c3b

File tree

4 files changed

+6
-4
lines changed

4 files changed

+6
-4
lines changed

DependencyInjection/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ private function addWorkflowSection(ArrayNodeDefinition $rootNode)
268268
->fixXmlConfig('argument')
269269
->children()
270270
->enumNode('type')
271-
->values(['multiple_state', 'single_state'])
271+
->values(['multiple_state', 'single_state', 'method'])
272272
->end()
273273
->arrayNode('arguments')
274274
->beforeNormalization()

DependencyInjection/FrameworkExtension.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,8 @@ private function registerWorkflowConfiguration(array $config, ContainerBuilder $
614614
$definitionDefinition->addTag('workflow.definition', [
615615
'name' => $name,
616616
'type' => $type,
617-
'marking_store' => isset($workflow['marking_store']['type']) ? $workflow['marking_store']['type'] : null,
617+
'marking_store' => $workflow['marking_store']['type'] ?? null,
618+
'single_state' => 'method' === ($workflow['marking_store']['type'] ?? null) && ($workflow['marking_store']['arguments'][0] ?? false),
618619
]);
619620

620621
// Create MarkingStore

Resources/config/workflow.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
<service id="workflow.marking_store.multiple_state" class="Symfony\Component\Workflow\MarkingStore\MultipleStateMarkingStore" abstract="true" />
2424
<service id="workflow.marking_store.single_state" class="Symfony\Component\Workflow\MarkingStore\SingleStateMarkingStore" abstract="true" />
25+
<service id="workflow.marking_store.method" class="Symfony\Component\Workflow\MarkingStore\MethodMarkingStore" abstract="true" />
2526

2627
<service id="workflow.registry" class="Symfony\Component\Workflow\Registry" />
2728
<service id="Symfony\Component\Workflow\Registry" alias="workflow.registry" />

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ public function testWorkflows()
215215
$workflowDefinition->getArgument(0),
216216
'Places are passed to the workflow definition'
217217
);
218-
$this->assertSame(['workflow.definition' => [['name' => 'article', 'type' => 'workflow', 'marking_store' => 'multiple_state']]], $workflowDefinition->getTags());
218+
$this->assertSame(['workflow.definition' => [['name' => 'article', 'type' => 'workflow', 'marking_store' => 'multiple_state', 'single_state' => false]]], $workflowDefinition->getTags());
219219
$this->assertCount(4, $workflowDefinition->getArgument(1));
220220
$this->assertSame('draft', $workflowDefinition->getArgument(2));
221221

@@ -237,7 +237,7 @@ public function testWorkflows()
237237
$stateMachineDefinition->getArgument(0),
238238
'Places are passed to the state machine definition'
239239
);
240-
$this->assertSame(['workflow.definition' => [['name' => 'pull_request', 'type' => 'state_machine', 'marking_store' => 'single_state']]], $stateMachineDefinition->getTags());
240+
$this->assertSame(['workflow.definition' => [['name' => 'pull_request', 'type' => 'state_machine', 'marking_store' => 'single_state', 'single_state' => false]]], $stateMachineDefinition->getTags());
241241
$this->assertCount(9, $stateMachineDefinition->getArgument(1));
242242
$this->assertSame('start', $stateMachineDefinition->getArgument(2));
243243

0 commit comments

Comments
 (0)