Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 10th, 2012  |  syntax: None  |  size: 1.60 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. diff --git a/src/Evenement/EventEmitter.php b/src/Evenement/EventEmitter.php
  2. index 5b8d00c..8207aaf 100644
  3. --- a/src/Evenement/EventEmitter.php
  4. +++ b/src/Evenement/EventEmitter.php
  5. @@ -29,21 +29,16 @@ namespace Evenement;
  6.  class EventEmitter
  7.  {
  8.         private $listeners = array();
  9. -       private $modified = array();
  10.  
  11.         public function on($event, $listener)
  12.         {
  13.                 if (!is_callable($listener)) {
  14.                         throw new \InvalidArgumentException('The provided listener was not a valid callable.');
  15.                 }
  16. -
  17. -               if (!isset($this->listeners[$event])) {
  18. -                       $this->listeners[$event] = array();
  19. -               }
  20. -
  21. +              
  22. +               empty($this->listeners[$event]) && $this->listeners[$event] = array();
  23. +              
  24.                 $this->listeners[$event][] = $listener;
  25. -
  26. -               $this->modified[$event] = true;
  27.         }
  28.  
  29.         public function removeListener($event, $listener)
  30. @@ -62,27 +57,18 @@ class EventEmitter
  31.  
  32.         public function listeners($event)
  33.         {
  34. -               if (!isset($this->listeners[$event])) {
  35. -                       return array();
  36. -               }
  37. -
  38. -               $this->sortListenersEventIfModified($event);
  39. -
  40. -               return $this->listeners[$event];
  41. +               return empty($this->listeners[$event]) ? array() : $this->listeners[$event];
  42.         }
  43.  
  44.         public function emit($event, array $arguments = array())
  45.         {
  46. -               foreach ($this->listeners($event) as $listener) {
  47. -                       call_user_func_array($listener, $arguments);
  48. +               if(empty($this->listeners[$event]))
  49. +               {
  50. +                       return;
  51.                 }
  52. -       }
  53. -
  54. -       private function sortListenersEventIfModified($event)
  55. -       {
  56. -               if ($this->modified[$event]) {
  57. -                       krsort($this->listeners[$event]);
  58. -                       unset($this->modified[$event]);
  59. +              
  60. +               foreach ($this->listeners[$event] as $listener) {
  61. +                       call_user_func_array($listener, $arguments);
  62.                 }
  63.         }
  64.  }