<?php
namespace App\EventSubscriber\Activity;
use App\Event\Activity\ActivityEvent;
use App\Service\Activity\ActivityManager;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ActivitySubscriber implements EventSubscriberInterface
{
private ActivityManager $activityManager;
private EntityManagerInterface $entityManager;
public function __construct(ActivityManager $activityManager, EntityManagerInterface $entityManager)
{
$this->activityManager = $activityManager;
$this->entityManager = $entityManager;
}
public static function getSubscribedEvents()
{
return [
ActivityEvent::NAME => 'save',
];
}
public function save(ActivityEvent $even): void
{
$entity = $even->getEntity();
$activity = $this->activityManager->saveNewActivity();
$entity->setActivity($activity);
$this->entityManager->persist($entity);
$this->entityManager->flush();
}
}