vendor/wns/security-compliance-suite/src/Logging/Subscriber/LogEventSubscriber.php line 34

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace WnsSecurityComplianceSuite\Logging\Subscriber;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use WnsSecurityComplianceSuite\Logging\DTO\Log;
  6. use WnsSecurityComplianceSuite\Logging\Provider\SourceInfoProvider;
  7. use WnsSecurityComplianceSuite\Logging\Service\ActionLogger;
  8. use WnsSecurityComplianceSuite\Util\Event\EmitLogEvent;
  9. final class LogEventSubscriber implements EventSubscriberInterface
  10. {
  11. private ActionLogger $actionLogger;
  12. private SourceInfoProvider $sourceInfoProvider;
  13. public function __construct(
  14. ActionLogger $actionLogger,
  15. SourceInfoProvider $sourceInfoProvider
  16. ) {
  17. $this->actionLogger = $actionLogger;
  18. $this->sourceInfoProvider = $sourceInfoProvider;
  19. }
  20. public static function getSubscribedEvents()
  21. {
  22. return [
  23. EmitLogEvent::class => 'logCustomEvent',
  24. ];
  25. }
  26. public function logCustomEvent(EmitLogEvent $event): void
  27. {
  28. $source = $this->sourceInfoProvider->getSourceDTO($event->getContext()->getSource());
  29. $log = new Log(
  30. $event->getEventType(),
  31. $source,
  32. $event->getDetails(),
  33. new \DateTimeImmutable(),
  34. );
  35. $this->actionLogger->log($log, null);
  36. }
  37. }