/**
  * @dataProvider provideDoctrineEvents
  */
 public function testDoctrineConditionalDeferredIsExecutedIfEventFired($event)
 {
     $this->doctrineDeferred->expects($this->once())->method('getEvents')->will($this->returnValue(array('evt1', $event, 'evt2')));
     $this->decorator->{$event}(EventArgs::getEmptyInstance());
     $this->executor->expects($this->once())->method('execute')->with($this->doctrineDeferred);
     $this->decorator->execute($this->doctrineDeferred);
 }
예제 #2
0
 /**
  * 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.
  * @param EventArgs $eventArgs The event arguments to pass to the event handlers/listeners.
  *                             If not supplied, the single empty EventArgs instance is used.
  * @return boolean
  */
 public function dispatchEvent($eventName, EventArgs $eventArgs = null)
 {
     if (isset($this->_listeners[$eventName])) {
         $eventArgs = $eventArgs === null ? EventArgs::getEmptyInstance() : $eventArgs;
         foreach ($this->_listeners[$eventName] as $listener) {
             $listener->{$eventName}($eventArgs);
         }
     }
 }
예제 #3
0
 /**
  * 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.
  * @param EventArgs|null $eventArgs The event arguments to pass to the event handlers/listeners.
  *                                  If not supplied, the single empty EventArgs instance is used.
  *
  * @return boolean
  */
 public function dispatchEvent($eventName, EventArgs $eventArgs = null)
 {
     if (!$this->hasListeners($eventName)) {
         return;
     }
     $eventArgs = $eventArgs === null ? EventArgs::getEmptyInstance() : $eventArgs;
     foreach ($this->getListeners($eventName) as $listener) {
         $listener->{$eventName}($eventArgs);
         if ($eventArgs instanceof RejectInterface && $eventArgs->getReject()) {
             break;
         }
     }
 }
 /**
  * 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.
  * @param EventArgs $eventArgs The event arguments to pass to the event handlers/listeners.
  *                             If not supplied, the single empty EventArgs instance is used.
  *
  * @return bool
  */
 public function dispatchEvent($eventName, EventArgs $eventArgs = null)
 {
     if (isset($this->listeners[$eventName])) {
         $eventArgs = null === $eventArgs ? EventArgs::getEmptyInstance() : $eventArgs;
         $initialized = isset($this->initialized[$eventName]);
         foreach ($this->listeners[$eventName] as $hash => $listener) {
             if (!$initialized && is_string($listener)) {
                 $this->listeners[$eventName][$hash] = $listener = $this->container->get($listener);
             }
             $listener->{$eventName}($eventArgs);
         }
         $this->initialized[$eventName] = true;
     }
 }