/**
  * This method unregister a observer. Nexts events won't be notified to unregister observer
  *
  * @param __EventListener $event_listener The {@link __EventListener} to be unregisstered
  */
 public static function unregisterEventListener(__EventListener &$event_listener)
 {
     $event_type = $event_listener->getEventToListen();
     if (key_exists($event_type, $this->_event_listeners)) {
         for ($i = 0; $i < count($this->_event_listeners[$event_type]); $i++) {
             if ($this->_event_listeners[$event_type][$i] === $event_listener) {
                 array_splice($this->_event_listeners[$event_type], $i, 1);
                 return;
             }
         }
     }
 }
 public function __construct($event_type, __Callback &$callback, $context_id = null)
 {
     parent::__construct($event_type, $callback);
     if ($context_id == null) {
         $context_id = __CurrentContext::getInstance()->getContextId();
     }
     $this->_context_id = $context_id;
 }