1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
<?php
namespace hji\membership\controllers;
use hji\membership\entities\Event;
use hji\membership\entities\UserActionEvent;
use hji\membership\observers\EventDispatcher;
class Dispatcher
{
private $eventDispatcher;
public function __construct(EventDispatcher $eventDispatcher)
{
$this->eventDispatcher = $eventDispatcher;
}
public function attachListener(\SplObserver $listener)
{
$this->eventDispatcher->attach($listener);
}
public function detachListener(\SplObserver $listener)
{
$this->eventDispatcher->detach($listener);
}
public function dispatchEvent($event, $attributes = null)
{
$this->eventDispatcher->dispatchEvent(new Event($event, $attributes));
}
public function dispatchUserAction($action, $attributes = null)
{
$this->eventDispatcher->dispatchEvent(new UserActionEvent($action, $attributes));
}
}