Skip to content

Commit 395f091

Browse files
Merge branch '6.2' into 6.3
* 6.2: [Serializer] Fix SerializedPath not working with constructor arguments [FrameworkBundle] Fix Workflow without a marking store definition uses marking store definition of previously defined workflow [HttpFoundation] UrlHelper is now aware of RequestContext changes UrlHelper is now aware of RequestContext changes [Process] Stop the process correctly even if underlying input stream is not closed: Fix get sender name in turbosms notifier [Notifier] Update AmazonSns url in doc from de to en [PropertyInfo] Fix `PhpStanExtractor` when constructor has no docblock [PropertyAccess] Fix nullsafe operator on array index
2 parents e77d2a0 + 3a527fd commit 395f091

File tree

3 files changed

+59
-2
lines changed

3 files changed

+59
-2
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -990,6 +990,7 @@ private function registerWorkflowConfiguration(array $config, ContainerBuilder $
990990
$definitionDefinition->addArgument(new Reference(sprintf('%s.metadata_store', $workflowId)));
991991

992992
// Create MarkingStore
993+
$markingStoreDefinition = null;
993994
if (isset($workflow['marking_store']['type'])) {
994995
$markingStoreDefinition = new ChildDefinition('workflow.marking_store.method');
995996
$markingStoreDefinition->setArguments([
@@ -1003,7 +1004,7 @@ private function registerWorkflowConfiguration(array $config, ContainerBuilder $
10031004
// Create Workflow
10041005
$workflowDefinition = new ChildDefinition(sprintf('%s.abstract', $type));
10051006
$workflowDefinition->replaceArgument(0, new Reference(sprintf('%s.definition', $workflowId)));
1006-
$workflowDefinition->replaceArgument(1, $markingStoreDefinition ?? null);
1007+
$workflowDefinition->replaceArgument(1, $markingStoreDefinition);
10071008
$workflowDefinition->replaceArgument(3, $name);
10081009
$workflowDefinition->replaceArgument(4, $workflow['events_to_dispatch']);
10091010

Resources/config/services.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ class_exists(WorkflowEvents::class) ? WorkflowEvents::ALIASES : []
120120
->set('url_helper', UrlHelper::class)
121121
->args([
122122
service('request_stack'),
123-
service('router.request_context')->ignoreOnInvalid(),
123+
service('router')->ignoreOnInvalid(),
124124
])
125125
->alias(UrlHelper::class, 'url_helper')
126126

Tests/DependencyInjection/PhpFrameworkExtensionTest.php

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,62 @@ public function testWorkflowValidationStateMachine()
8888
});
8989
}
9090

91+
public function testWorkflowDefaultMarkingStoreDefinition()
92+
{
93+
$container = $this->createContainerFromClosure(function ($container) {
94+
$container->loadFromExtension('framework', [
95+
'workflows' => [
96+
'workflow_a' => [
97+
'type' => 'state_machine',
98+
'marking_store' => [
99+
'type' => 'method',
100+
'property' => 'status',
101+
],
102+
'supports' => [
103+
__CLASS__,
104+
],
105+
'places' => [
106+
'a',
107+
'b',
108+
],
109+
'transitions' => [
110+
'a_to_b' => [
111+
'from' => ['a'],
112+
'to' => ['b'],
113+
],
114+
],
115+
],
116+
'workflow_b' => [
117+
'type' => 'state_machine',
118+
'supports' => [
119+
__CLASS__,
120+
],
121+
'places' => [
122+
'a',
123+
'b',
124+
],
125+
'transitions' => [
126+
'a_to_b' => [
127+
'from' => ['a'],
128+
'to' => ['b'],
129+
],
130+
],
131+
],
132+
],
133+
]);
134+
});
135+
136+
$workflowA = $container->getDefinition('state_machine.workflow_a');
137+
$argumentsA = $workflowA->getArguments();
138+
$this->assertArrayHasKey('index_1', $argumentsA, 'workflow_a has a marking_store argument');
139+
$this->assertNotNull($argumentsA['index_1'], 'workflow_a marking_store argument is not null');
140+
141+
$workflowB = $container->getDefinition('state_machine.workflow_b');
142+
$argumentsB = $workflowB->getArguments();
143+
$this->assertArrayHasKey('index_1', $argumentsB, 'workflow_b has a marking_store argument');
144+
$this->assertNull($argumentsB['index_1'], 'workflow_b marking_store argument is null');
145+
}
146+
91147
public function testRateLimiterWithLockFactory()
92148
{
93149
try {

0 commit comments

Comments
 (0)