/** * 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); }
/** * 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); }
/** * 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); }
/** * 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); }
/** * 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); }
/** * 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)); } } }
/** * 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); }
public function testConstructor() { $model = new ViewModel(); $event = new ToolbarEvent($model); $this->assertSame($model, $event->getContext()); }