Skip to content

Commit

Permalink
feature #35321 [Workflow] Make many internal services as hidden (lyrixx)
Browse files Browse the repository at this point in the history
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Workflow] Make many internal services as hidden

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #35197
| License       | MIT
| Doc PR        |

I "removed":

* transitions
* auto-generated guard listener  (when enable via the configuration)
* auto-generated audit trail listener (when enable via the configuration)
* abstract workflow definition for the workflow and state machine

I kept
* the registry
* the workflow (of course)
* its definition: I know people are using it
* `workflow.twig_extension` the twig extension because all others twig extensions are not hidden - but could IMHO
* the default marking store
* the command to dump the workflow (SVG)
* The local expression language

Commits
-------

b4776d6 [Workflow] Make many internal services as hidden
  • Loading branch information
fabpot committed Jan 13, 2020
2 parents ddc0169 + b4776d6 commit 0607691
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
Expand Up @@ -632,7 +632,7 @@ private function registerWorkflowConfiguration(array $config, ContainerBuilder $
if ('workflow' === $type) {
$transitionDefinition = new Definition(Workflow\Transition::class, [$transition['name'], $transition['from'], $transition['to']]);
$transitionDefinition->setPublic(false);
$transitionId = sprintf('%s.transition.%s', $workflowId, $transitionCounter++);
$transitionId = sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
$container->setDefinition($transitionId, $transitionDefinition);
$transitions[] = new Reference($transitionId);
if (isset($transition['guard'])) {
Expand All @@ -654,7 +654,7 @@ private function registerWorkflowConfiguration(array $config, ContainerBuilder $
foreach ($transition['to'] as $to) {
$transitionDefinition = new Definition(Workflow\Transition::class, [$transition['name'], $from, $to]);
$transitionDefinition->setPublic(false);
$transitionId = sprintf('%s.transition.%s', $workflowId, $transitionCounter++);
$transitionId = sprintf('.%s.transition.%s', $workflowId, $transitionCounter++);
$container->setDefinition($transitionId, $transitionDefinition);
$transitions[] = new Reference($transitionId);
if (isset($transition['guard'])) {
Expand Down Expand Up @@ -750,7 +750,7 @@ private function registerWorkflowConfiguration(array $config, ContainerBuilder $
$listener->addTag('kernel.event_listener', ['event' => sprintf('workflow.%s.transition', $name), 'method' => 'onTransition']);
$listener->addTag('kernel.event_listener', ['event' => sprintf('workflow.%s.enter', $name), 'method' => 'onEnter']);
$listener->addArgument(new Reference('logger'));
$container->setDefinition(sprintf('%s.listener.audit_trail', $workflowId), $listener);
$container->setDefinition(sprintf('.%s.listener.audit_trail', $workflowId), $listener);
}

// Add Guard Listener
Expand Down Expand Up @@ -779,7 +779,7 @@ private function registerWorkflowConfiguration(array $config, ContainerBuilder $
$guard->addTag('kernel.event_listener', ['event' => $eventName, 'method' => 'onTransition']);
}

$container->setDefinition(sprintf('%s.listener.guard', $workflowId), $guard);
$container->setDefinition(sprintf('.%s.listener.guard', $workflowId), $guard);
$container->setParameter('workflow.has_guard_listeners', true);
}
}
Expand Down
Expand Up @@ -264,7 +264,7 @@ public function testWorkflows()
$params = $transitionsMetadataCall[1];
$this->assertCount(2, $params);
$this->assertInstanceOf(Reference::class, $params[0]);
$this->assertSame('state_machine.pull_request.transition.0', (string) $params[0]);
$this->assertSame('.state_machine.pull_request.transition.0', (string) $params[0]);

$serviceMarkingStoreWorkflowDefinition = $container->getDefinition('workflow.service_marking_store_workflow');
/** @var Reference $markingStoreRef */
Expand Down Expand Up @@ -311,7 +311,7 @@ public function testWorkflowMultipleTransitionsWithSameName()

$this->assertCount(5, $transitions);

$this->assertSame('workflow.article.transition.0', (string) $transitions[0]);
$this->assertSame('.workflow.article.transition.0', (string) $transitions[0]);
$this->assertSame([
'request_review',
[
Expand All @@ -322,7 +322,7 @@ public function testWorkflowMultipleTransitionsWithSameName()
],
], $container->getDefinition($transitions[0])->getArguments());

$this->assertSame('workflow.article.transition.1', (string) $transitions[1]);
$this->assertSame('.workflow.article.transition.1', (string) $transitions[1]);
$this->assertSame([
'journalist_approval',
[
Expand All @@ -333,7 +333,7 @@ public function testWorkflowMultipleTransitionsWithSameName()
],
], $container->getDefinition($transitions[1])->getArguments());

$this->assertSame('workflow.article.transition.2', (string) $transitions[2]);
$this->assertSame('.workflow.article.transition.2', (string) $transitions[2]);
$this->assertSame([
'spellchecker_approval',
[
Expand All @@ -344,7 +344,7 @@ public function testWorkflowMultipleTransitionsWithSameName()
],
], $container->getDefinition($transitions[2])->getArguments());

$this->assertSame('workflow.article.transition.3', (string) $transitions[3]);
$this->assertSame('.workflow.article.transition.3', (string) $transitions[3]);
$this->assertSame([
'publish',
[
Expand All @@ -356,7 +356,7 @@ public function testWorkflowMultipleTransitionsWithSameName()
],
], $container->getDefinition($transitions[3])->getArguments());

$this->assertSame('workflow.article.transition.4', (string) $transitions[4]);
$this->assertSame('.workflow.article.transition.4', (string) $transitions[4]);
$this->assertSame([
'publish',
[
Expand All @@ -372,10 +372,10 @@ public function testWorkflowGuardExpressions()
{
$container = $this->createContainerFromFile('workflow_with_guard_expression');

$this->assertTrue($container->hasDefinition('workflow.article.listener.guard'), 'Workflow guard listener is registered as a service');
$this->assertTrue($container->hasDefinition('.workflow.article.listener.guard'), 'Workflow guard listener is registered as a service');
$this->assertTrue($container->hasParameter('workflow.has_guard_listeners'), 'Workflow guard listeners parameter exists');
$this->assertTrue(true === $container->getParameter('workflow.has_guard_listeners'), 'Workflow guard listeners parameter is enabled');
$guardDefinition = $container->getDefinition('workflow.article.listener.guard');
$guardDefinition = $container->getDefinition('.workflow.article.listener.guard');
$this->assertSame([
[
'event' => 'workflow.article.guard.publish',
Expand All @@ -385,9 +385,9 @@ public function testWorkflowGuardExpressions()
$guardsConfiguration = $guardDefinition->getArgument(0);
$this->assertTrue(1 === \count($guardsConfiguration), 'Workflow guard configuration contains one element per transition name');
$transitionGuardExpressions = $guardsConfiguration['workflow.article.guard.publish'];
$this->assertSame('workflow.article.transition.3', (string) $transitionGuardExpressions[0]->getArgument(0));
$this->assertSame('.workflow.article.transition.3', (string) $transitionGuardExpressions[0]->getArgument(0));
$this->assertSame('!!true', $transitionGuardExpressions[0]->getArgument(1));
$this->assertSame('workflow.article.transition.4', (string) $transitionGuardExpressions[1]->getArgument(0));
$this->assertSame('.workflow.article.transition.4', (string) $transitionGuardExpressions[1]->getArgument(0));
$this->assertSame('!!false', $transitionGuardExpressions[1]->getArgument(1));
}

Expand Down

0 comments on commit 0607691

Please sign in to comment.