- diff --git a/src/Evenement/EventEmitter.php b/src/Evenement/EventEmitter.php
- index 5b8d00c..8207aaf 100644
- --- a/src/Evenement/EventEmitter.php
- +++ b/src/Evenement/EventEmitter.php
- @@ -29,21 +29,16 @@ namespace Evenement;
- class EventEmitter
- {
- private $listeners = array();
- - private $modified = array();
- public function on($event, $listener)
- {
- if (!is_callable($listener)) {
- throw new \InvalidArgumentException('The provided listener was not a valid callable.');
- }
- -
- - if (!isset($this->listeners[$event])) {
- - $this->listeners[$event] = array();
- - }
- -
- +
- + empty($this->listeners[$event]) && $this->listeners[$event] = array();
- +
- $this->listeners[$event][] = $listener;
- -
- - $this->modified[$event] = true;
- }
- public function removeListener($event, $listener)
- @@ -62,27 +57,18 @@ class EventEmitter
- public function listeners($event)
- {
- - if (!isset($this->listeners[$event])) {
- - return array();
- - }
- -
- - $this->sortListenersEventIfModified($event);
- -
- - return $this->listeners[$event];
- + return empty($this->listeners[$event]) ? array() : $this->listeners[$event];
- }
- public function emit($event, array $arguments = array())
- {
- - foreach ($this->listeners($event) as $listener) {
- - call_user_func_array($listener, $arguments);
- + if(empty($this->listeners[$event]))
- + {
- + return;
- }
- - }
- -
- - private function sortListenersEventIfModified($event)
- - {
- - if ($this->modified[$event]) {
- - krsort($this->listeners[$event]);
- - unset($this->modified[$event]);
- +
- + foreach ($this->listeners[$event] as $listener) {
- + call_user_func_array($listener, $arguments);
- }
- }
- }