/** * @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); }
/** * 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); } } }
/** * 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; } }