Set mode for EventEmitter behaviour. $emitterMode can be one of:
EventEmitter::EVENTS_FORWARD Allows all events to be forwarded (Default)
EventEmitter::EVENTS_DISCARD Disallows all events from being forwarded
EventEmitter::EVENTS_DISCARD_INCOMING Discards only listeners attached to $this emitter
EventEmitter::EVENTS_DISCARD_OUTCOMING Discards only further emits on forwarder
/** * @see EventEmitterInterface::setMode */ public function setMode($emitterMode) { $this->emitter->setMode($emitterMode); }
/** * @dataProvider emitterProvider */ public function testApiEmit_EmitsEvents_ForBehaviourSetToDiscardOutcomingEvents(EventEmitterInterface $emitter) { $listener = $this->createEventEmitter(); $emitter->setMode(EventEmitter::EVENTS_DISCARD_OUTCOMING); $emitter->forwardEvents($listener); $emitter->on('test', $this->expectCallableOnce()); $listener->on('test', $this->expectCallableNever()); $emitter->emit('test'); }