public function emit($event, $arguments = [])
{
$listeners = isset($this->eventListeners[$event]) ? $this->eventListeners[$event] : [];
if (($this->emitterBlocked & EventEmitter::EVENTS_DISCARD_INCOMING) !== EventEmitter::EVENTS_DISCARD_INCOMING) {
foreach ($listeners as $eventListener) {
call_user_func_array($eventListener->getListener(), $arguments);
}
}
if (($this->emitterBlocked & EventEmitter::EVENTS_DISCARD_OUTCOMING) !== EventEmitter::EVENTS_DISCARD_OUTCOMING) {
foreach ($this->forwardListeners as $listener) {
$listener->emit($event, $arguments);
}
}
}