Example #1
0
 public function bind(Listener $listener)
 {
     if (!$this->_listeners[$listener->getId()]) {
         $this->_listeners[$listener->getId()] = [];
     }
     $pos = count($this->_listeners[$listener->getId()]);
     foreach ($this->_listeners[$listener->getId()] as $k => $v) {
         if ($v->priority > $listener->getPriority()) {
             $pos = $k;
             break;
         }
     }
     array_splice($this->_listeners[$listener->getId()], $pos, 0, [$listener]);
     return $this;
 }
Example #2
0
 public function addListener(Listener $callback)
 {
     $type = $callback->getType();
     $id = $callback->getId();
     if (!isset($this->listeners[$type])) {
         $this->listeners[$type] = ['id' => [], 'global' => []];
     }
     if ($id) {
         if (!isset($this->listeners[$type]['id'][$id])) {
             $this->listeners[$type]['id'][$id] = [];
         }
         $this->listeners[$type]['id'][$id][] = $callback;
     } else {
         $this->listeners[$type]['global'][] = $callback;
     }
 }