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