<?php
namespace App\EventSubscriber;
use App\Event\MSC\MscActivityAddedEvent;
use App\Event\MSC\MscActivityCommentEvent;
use App\Event\MSC\MscActivityCompletedEvent;
use App\Event\MSC\MscActivityRemovedEvent;
use App\Event\MSC\MscActivityUncompletedEvent;
use App\Event\MSC\MscActivityUpdatedEvent;
use App\Event\MSC\MscApprovedEvent;
use App\Event\MSC\MscBaseEvent;
use App\Event\MSC\MscCompletedEvent;
use App\Event\MSC\MscCreatedEvent;
use App\Event\MSC\MscCycleOpenedEvent;
use App\Event\MSC\MscCycleRestoredEvent;
use App\Event\MSC\MscDeniedEvent;
use App\Event\MSC\MscObjectiveLinkedEvent;
use App\Event\MSC\MscObjectiveUnlinkedEvent;
use App\Event\MSC\MscRequestApprovalEvent;
use App\Event\MSC\MscSkippedEvent;
use Psr\Container\ContainerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class MscEventSubscriber implements EventSubscriberInterface
{
/** @var ContainerInterface */
private $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public static function getSubscribedEvents()
{
return [
MscCreatedEvent::class => 'logEvent',
MscApprovedEvent::class => 'logEvent',
MscCompletedEvent::class => 'logEvent',
MscDeniedEvent::class => 'logEvent',
MscActivityAddedEvent::class => 'logEvent',
MscActivityRemovedEvent::class => 'logEvent',
MscActivityCommentEvent::class => 'logEvent',
MscActivityCompletedEvent::class => 'logEvent',
MscActivityUncompletedEvent::class => 'logEvent',
MscCycleRestoredEvent::class => 'logEvent',
MscSkippedEvent::class => 'logEvent',
MscObjectiveLinkedEvent::class => 'logEvent',
MscObjectiveUnlinkedEvent::class => 'logEvent',
MscRequestApprovalEvent::class => 'logEvent',
MscActivityUpdatedEvent::class => 'logEvent',
MscCycleOpenedEvent::class => 'logEvent',
];
}
public function logEvent(MscBaseEvent $event)
{
$this->container->get('monolog.logger.event_log')->info("", [
'name' => $event::NAME,
'entity' => $event->getObject(),
'oldEntity'=> $event->getPreviousObject(),
'extra' => $event->getExtra()
]);
}
}