<?php
/**
* Author: Anton Orlov
* Date: 23.03.2018
* Time: 10:33
*/
namespace FMT\Domain\Service\Manager;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Contracts\EventDispatcher\Event;
/**
* Class EventBasedManager
* @package FMT\Domain\Service
*/
abstract class EventBasedManager
{
/** @var EventDispatcherInterface */
private $dispatcher;
/**
* @required
* @param EventDispatcherInterface $dispatcher
* @required
*/
public function setEventDispatcher(EventDispatcherInterface $dispatcher)
{
$this->dispatcher = $dispatcher;
}
/**
* @param $name
* @param Event $event
* @return object
*/
protected function dispatch($name, Event $event)
{
return $this->dispatcher->dispatch($event, $name);
}
}