|
35 | 35 | use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
36 | 36 | use Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer;
|
37 | 37 | use Symfony\Component\Workflow;
|
38 |
| -use Symfony\Component\Workflow\SupportStrategy\ClassInstanceSupportStrategy; |
39 | 38 | use Symfony\Component\Console\Application;
|
40 | 39 |
|
41 | 40 | /**
|
@@ -481,13 +480,24 @@ private function registerWorkflowConfiguration(array $workflows, ContainerBuilde
|
481 | 480 | // Add workflow to Registry
|
482 | 481 | if ($workflow['supports']) {
|
483 | 482 | foreach ($workflow['supports'] as $supportedClassName) {
|
484 |
| - $strategyDefinition = new Definition(ClassInstanceSupportStrategy::class, array($supportedClassName)); |
| 483 | + $strategyDefinition = new Definition(Workflow\SupportStrategy\ClassInstanceSupportStrategy::class, array($supportedClassName)); |
485 | 484 | $strategyDefinition->setPublic(false);
|
486 | 485 | $registryDefinition->addMethodCall('add', array(new Reference($workflowId), $strategyDefinition));
|
487 | 486 | }
|
488 | 487 | } elseif (isset($workflow['support_strategy'])) {
|
489 | 488 | $registryDefinition->addMethodCall('add', array(new Reference($workflowId), new Reference($workflow['support_strategy'])));
|
490 | 489 | }
|
| 490 | + |
| 491 | + // Enable the AuditTrail |
| 492 | + if ($workflow['audit_trail']['enabled']) { |
| 493 | + $listener = new Definition(Workflow\EventListener\AuditTrailListener::class); |
| 494 | + $listener->addTag('monolog.logger', array('channel' => 'workflow')); |
| 495 | + $listener->addTag('kernel.event_listener', array('event' => sprintf('workflow.%s.leave', $name), 'method' => 'onLeave')); |
| 496 | + $listener->addTag('kernel.event_listener', array('event' => sprintf('workflow.%s.transition', $name), 'method' => 'onTransition')); |
| 497 | + $listener->addTag('kernel.event_listener', array('event' => sprintf('workflow.%s.enter', $name), 'method' => 'onEnter')); |
| 498 | + $listener->addArgument(new Reference('logger')); |
| 499 | + $container->setDefinition(sprintf('%s.listener.audit_trail', $workflowId), $listener); |
| 500 | + } |
491 | 501 | }
|
492 | 502 | }
|
493 | 503 |
|
|
0 commit comments