Example #1
0
 private function _fetchListener(EventIF $ev)
 {
     foreach ($this->_store as $k => $list) {
         if ($ev->match($k)) {
             foreach ($list as $handler) {
                 (yield $handler);
             }
         }
     }
 }
Example #2
0
 public function dispatch(EventIF $event)
 {
     if (!$event->hasSubject()) {
         $event->setSubject($this->_subject);
     }
     foreach ($this->_observer_store as $observer) {
         // 伝搬チェック
         if ($event->isStopPropagation()) {
             break;
         }
         $observer->notify($event);
     }
     if (!$event->match('event.dispatched')) {
         $this->dispatch(Event::create('event.dispatched', ['event' => $event]));
     }
     return $event;
 }