コード例 #1
0
 /**
  * Adds the attributes of request to the debug toolbar.
  *
  * @param \Es\Debug\ToolbarEvent $event The event of the debug toolbar
  */
 public function __invoke(ToolbarEvent $event)
 {
     $model = $this->getModel();
     $server = $this->getServer();
     $request = $server->getRequest();
     $model['request_attributes'] = $request->getAttributes();
     $rootModel = $event->getContext();
     $rootModel->addChild($model);
 }
コード例 #2
0
 /**
  * Adds controllers description to the debug toolbar.
  *
  * @param \Es\Debug\ToolbarEvent $event The event of the debug toolbar
  */
 public function __invoke(ToolbarEvent $event)
 {
     $controllers = $this->getControllers();
     $model = $this->getModel();
     $items = [];
     foreach ($controllers->getInstances() as $name => $item) {
         $items[$name] = get_class($item);
     }
     $model['controllers'] = $items;
     $rootModel = $event->getContext();
     $rootModel->addChild($model);
 }
コード例 #3
0
 /**
  * Adds components description to the debug toolbar.
  *
  * @param \Es\Debug\ToolbarEvent $event The event of the debug toolbar
  */
 public function __invoke(ToolbarEvent $event)
 {
     $system = $this->getSystem();
     $model = $this->getModel();
     $items = [];
     foreach ($system->getComponents() as $class => $item) {
         $items[$class] = $item->getVersion();
     }
     $model['components'] = $items;
     $rootModel = $event->getContext();
     $rootModel->addChild($model);
 }
コード例 #4
0
 /**
  * Adds modules description to the debug toolbar.
  *
  * @param \Es\Debug\ToolbarEvent $event The event of the debug toolbar
  */
 public function __invoke(ToolbarEvent $event)
 {
     $modules = $this->getMOdules();
     $model = $this->getModel();
     $items = [];
     foreach ($modules as $name => $item) {
         $items[$name] = $item->getVersion();
     }
     $model['modules'] = $items;
     $rootModel = $event->getContext();
     $rootModel->addChild($model);
 }
コード例 #5
0
 /**
  * Adds services description to the debug toolbar.
  *
  * @param \Es\Debug\ToolbarEvent $event The event of the debug toolbar
  */
 public function __invoke(ToolbarEvent $event)
 {
     $services = $this->getServices();
     $model = $this->getModel();
     $items = [];
     foreach ($services->getInstances() as $name => $item) {
         $items[$name] = get_class($item);
     }
     ksort($items, SORT_NATURAL);
     $model['services'] = $items;
     $rootModel = $event->getContext();
     $rootModel->addChild($model);
 }
コード例 #6
0
 /**
  * Injects the debug toolbar to the body of the response.
  *
  * @param \Es\Debug\ToolbarEvent $toolbarEvent
  */
 public function __invoke(ToolbarEvent $toolbarEvent)
 {
     $system = $this->getSystem();
     $event = $system->getEvent();
     $result = $event->getResult(SystemEvent::FINISH);
     if ($result instanceof ResponseInterface) {
         $contentType = $result->getHeaderLine('Content-Type');
         if (0 === strpos($contentType, 'text/html')) {
             $view = $this->getView();
             $model = $toolbarEvent->getContext();
             $injection = $view->render($model);
             $body = (string) $result->getBody();
             $html = str_replace('</body>', $injection . '</body>', $body);
             $stream = Stream::make($html);
             $event->setResult(SystemEvent::FINISH, $result->withBody($stream));
         }
     }
 }
コード例 #7
0
 /**
  * Adds timers to the debug toolbar.
  *
  * @param \Es\Debug\ToolbarEvent $event The event of the debug toolbar
  */
 public function __invoke(ToolbarEvent $event)
 {
     $server = $this->getServer();
     $request = $server->getRequest();
     $start = $request->getServerParam('REQUEST_TIME_FLOAT');
     $finish = microtime(true) + 0.003;
     $model = $this->getModel();
     $profiler = $this->getProfiler();
     $timers = $profiler->getTimers();
     if (!empty($timers)) {
         reset($timers);
         $timers[key($timers)]['start'] = $start;
         end($timers);
         $timers[key($timers)]['stop'] = $finish;
     }
     foreach ($timers as $key => $item) {
         $timers[$key] = round($item['stop'] - $item['start'], 4);
     }
     $timers['Total'] = round($finish - $start, 4);
     $model['timers'] = $timers;
     $rootModel = $event->getContext();
     $rootModel->addChild($model);
 }
コード例 #8
0
 public function testConstructor()
 {
     $model = new ViewModel();
     $event = new ToolbarEvent($model);
     $this->assertSame($model, $event->getContext());
 }