You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.2 KiB
49 lines
1.2 KiB
<?php
|
|
|
|
namespace Guzzle\Common;
|
|
|
|
use Symfony\Component\EventDispatcher\EventDispatcher;
|
|
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
|
|
|
/**
|
|
* Class that holds an event dispatcher
|
|
*/
|
|
class AbstractHasDispatcher implements HasDispatcherInterface
|
|
{
|
|
/** @var EventDispatcherInterface */
|
|
protected $eventDispatcher;
|
|
|
|
public static function getAllEvents()
|
|
{
|
|
return array();
|
|
}
|
|
|
|
public function setEventDispatcher(EventDispatcherInterface $eventDispatcher)
|
|
{
|
|
$this->eventDispatcher = $eventDispatcher;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getEventDispatcher()
|
|
{
|
|
if (!$this->eventDispatcher) {
|
|
$this->eventDispatcher = new EventDispatcher();
|
|
}
|
|
|
|
return $this->eventDispatcher;
|
|
}
|
|
|
|
public function dispatch($eventName, array $context = array())
|
|
{
|
|
return $this->getEventDispatcher()->dispatch($eventName, new Event($context));
|
|
}
|
|
|
|
public function addSubscriber(EventSubscriberInterface $subscriber)
|
|
{
|
|
$this->getEventDispatcher()->addSubscriber($subscriber);
|
|
|
|
return $this;
|
|
}
|
|
}
|
|
|