コード例 #1
0
ファイル: Dispatcher.php プロジェクト: thinframe/events
 /**
  * Trigger event.
  *
  * @param AbstractEvent $event
  */
 public function trigger(AbstractEvent $event)
 {
     $queue = clone $this->queues->get($event->getEventId())->getOrElse(new \SplPriorityQueue());
     /* @var $queue \SplPriorityQueue */
     while ($queue->valid()) {
         $callback = $queue->extract();
         call_user_func_array($callback, ['event' => $event]);
         if (is_array($callback)) {
             $subscriber = get_class($callback[0]) . '::' . $callback[1];
         } elseif (is_string($callback)) {
             $subscriber = $callback;
         } else {
             $subscriber = get_class($callback);
         }
         $this->logger->debug("Event '" . $event->getEventId() . "' triggered '" . $subscriber . "'");
         if (!$event->shouldPropagate()) {
             $this->logger->debug("'{$subscriber}' stopped propagation of '" . $event->getEventId() . "'");
             break;
         }
     }
 }
コード例 #2
0
 /**
  * Constructor
  *
  * @param AbstractHttpException $exception
  * @param Request               $request
  * @param Response              $response
  */
 public function __construct(AbstractHttpException $exception, Request $request, Response $response)
 {
     parent::__construct(self::EVENT_ID, ['exception' => $exception, 'request' => $request, 'response' => $response]);
 }
コード例 #3
0
 /**
  * Constructor
  *
  * @param Request            $request
  * @param Response           $response
  * @param AbstractController $controller
  * @param string             $actionName
  * @param array              $arguments
  */
 public function __construct(Request $request, Response $response, AbstractController $controller, $actionName, array $arguments = [])
 {
     parent::__construct(self::EVENT_ID, ['request' => $request, 'response' => $response, 'controller' => $controller, 'actionName' => $actionName, 'arguments' => $arguments]);
 }
コード例 #4
0
ファイル: InotifyEvent.php プロジェクト: thinframe/inotify
 /**
  * Constructor
  *
  * @param array $payload
  */
 public function __construct(array $payload = [])
 {
     parent::__construct('thinframe.inotify', $payload);
 }
コード例 #5
0
ファイル: PcntlSignalEvent.php プロジェクト: thinframe/pcntl
 /**
  * Constructor
  *
  * @param Signal $signal
  */
 public function __construct(Signal $signal)
 {
     parent::__construct('thinframe.pcntl.signal', ['signal' => $signal]);
 }
コード例 #6
0
 /**
  * Constructor
  *
  * @param Request  $request
  * @param Response $response
  * @param string   $data
  */
 public function __construct(Request $request, Response $response, $data)
 {
     parent::__construct(self::EVENT_ID, ['request' => $request, 'response' => $response, 'data' => $data]);
 }