|
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