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 ;
/**
* The EventDispatcherInterface is the central point of Symfony ' s event listener system .
* Listeners are registered on the manager and events are dispatched through the
* manager .
*
* @ author Bernhard Schussek < bschussek @ gmail . com >
*/
interface EventDispatcherInterface
{
/**
* Dispatches an event to all registered listeners .
*
* @ param string $eventName The name of the event to dispatch . The name of
* the event is the name of the method that is
* invoked on listeners .
2017-02-02 16:28:38 -08:00
* @ param Event $event The event to pass to the event handlers / listeners
2015-08-17 17:00:26 -07:00
* If not supplied , an empty Event instance is created .
*
* @ return Event
*/
public function dispatch ( $eventName , Event $event = null );
/**
* Adds an event listener that listens on the specified events .
*
* @ param string $eventName The event to listen on
* @ param callable $listener The listener
* @ param int $priority The higher this value , the earlier an event
* listener will be triggered in the chain ( defaults to 0 )
*/
public function addListener ( $eventName , $listener , $priority = 0 );
/**
* Adds an event subscriber .
*
* The subscriber is asked for all the events he is
* interested in and added as a listener for these events .
*
2017-02-02 16:28:38 -08:00
* @ param EventSubscriberInterface $subscriber The subscriber
2015-08-17 17:00:26 -07:00
*/
public function addSubscriber ( EventSubscriberInterface $subscriber );
/**
* Removes an event listener from the specified events .
*
* @ param string $eventName The event to remove a listener from
* @ param callable $listener The listener to remove
*/
public function removeListener ( $eventName , $listener );
/**
* Removes an event subscriber .
*
* @ param EventSubscriberInterface $subscriber The subscriber
*/
public function removeSubscriber ( EventSubscriberInterface $subscriber );
/**
* Gets the listeners of a specific event or all listeners sorted by descending priority .
*
* @ param string $eventName The name of the event
*
* @ return array The event listeners for the specified event , or all event listeners by event name
*/
public function getListeners ( $eventName = null );
/**
* Checks whether an event has any registered listeners .
*
* @ param string $eventName The name of the event
*
* @ return bool true if the specified event has any listeners , false otherwise
*/
public function hasListeners ( $eventName = null );
}