2015-08-17 17:00:26 -07:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\EventDispatcher ;
/**
* A read - only proxy for an event dispatcher .
*
* @ author Bernhard Schussek < bschussek @ gmail . com >
*/
class ImmutableEventDispatcher implements EventDispatcherInterface
{
/**
* The proxied dispatcher .
*
* @ var EventDispatcherInterface
*/
private $dispatcher ;
/**
* Creates an unmodifiable proxy for an event dispatcher .
*
2017-02-02 16:28:38 -08:00
* @ param EventDispatcherInterface $dispatcher The proxied event dispatcher
2015-08-17 17:00:26 -07:00
*/
public function __construct ( EventDispatcherInterface $dispatcher )
{
$this -> dispatcher = $dispatcher ;
}
/**
* { @ inheritdoc }
*/
public function dispatch ( $eventName , Event $event = null )
{
return $this -> dispatcher -> dispatch ( $eventName , $event );
}
/**
* { @ inheritdoc }
*/
public function addListener ( $eventName , $listener , $priority = 0 )
{
throw new \BadMethodCallException ( 'Unmodifiable event dispatchers must not be modified.' );
}
/**
* { @ inheritdoc }
*/
public function addSubscriber ( EventSubscriberInterface $subscriber )
{
throw new \BadMethodCallException ( 'Unmodifiable event dispatchers must not be modified.' );
}
/**
* { @ inheritdoc }
*/
public function removeListener ( $eventName , $listener )
{
throw new \BadMethodCallException ( 'Unmodifiable event dispatchers must not be modified.' );
}
/**
* { @ inheritdoc }
*/
public function removeSubscriber ( EventSubscriberInterface $subscriber )
{
throw new \BadMethodCallException ( 'Unmodifiable event dispatchers must not be modified.' );
}
/**
* { @ inheritdoc }
*/
public function getListeners ( $eventName = null )
{
return $this -> dispatcher -> getListeners ( $eventName );
}
2016-04-20 09:56:34 -07:00
/**
* { @ inheritdoc }
*/
public function getListenerPriority ( $eventName , $listener )
{
return $this -> dispatcher -> getListenerPriority ( $eventName , $listener );
}
2015-08-17 17:00:26 -07:00
/**
* { @ inheritdoc }
*/
public function hasListeners ( $eventName = null )
{
return $this -> dispatcher -> hasListeners ( $eventName );
}
}