/** * ProfilerEvent::EVENT_COLLECTED event callback. * * @param ProfilerEvent $event */ public function onCollected(ProfilerEvent $event) { $profiler = $event->getProfiler(); $report = $event->getReport(); // Log every collected profile except for profiler route $routeMatch = $event->getApplication()->getMvcEvent()->getRouteMatch(); if ($routeMatch && !in_array($routeMatch->getMatchedRouteName(), array('profiler', 'profiler-static'))) { $event->getApplication()->getServiceManager()->get('Profiler\\ProfilerService')->logCollectedProfilesIntoLogFile($profiler, $report); } }
/** * Constructor. * * @param ProfilerEvent $event * @param ReportInterface $report */ public function __construct(ProfilerEvent $event, ReportInterface $report) { $this->event = $event; $this->report = $report; $this->event->setTarget($this); $this->event->setProfiler($this)->setReport($report); }
/** * @inheritdoc */ public function getServiceConfig() { return array('aliases' => array('Profiler' => 'ZDT_Profiler'), 'invokables' => array('ZDT_Report' => 'ZendDeveloperTools\\Report', 'ZDT_EventCollector' => 'ZendDeveloperTools\\Collector\\EventCollector', 'ZDT_ExceptionCollector' => 'ZendDeveloperTools\\Collector\\ExceptionCollector', 'ZDT_RouteCollector' => 'ZendDeveloperTools\\Collector\\RouteCollector', 'ZDT_RequestCollector' => 'ZendDeveloperTools\\Collector\\RequestCollector', 'ZDT_MailCollector' => 'ZendDeveloperTools\\Collector\\MailCollector', 'ZDT_MemoryCollector' => 'ZendDeveloperTools\\Collector\\MemoryCollector', 'ZDT_TimeCollector' => 'ZendDeveloperTools\\Collector\\TimeCollector'), 'factories' => array('ZDT_Options' => function ($sm) { $config = $sm->get('Config'); $config = isset($config['zdt']) ? $config['zdt'] : null; return new Options($config, $sm->get('ZDT_Report')); }, 'ZDT_Bootstrap' => function ($sm) { $opt = $sm->get('ZDT_Options'); $em = $sm->get('Application')->getEventManager(); $rpt = $sm->get('ZDT_Report'); return new Bootstrap($sm, $em, $opt, $rpt); }, 'ZDT_Profiler' => function ($sm) { return new Profiler($sm->get('ZDT_ProfilerEvent'), $sm->get('ZDT_Report')); }, 'ZDT_ProfilerEvent' => function ($sm) { $event = new ProfilerEvent(); $event->setApplication($sm->get('Application')); return $event; }, 'ZDT_FlushListener' => function ($sm) { return new Listener\FlushListener($sm); }, 'ZDT_StorageListener' => function ($sm) { return new Listener\StorageListener($sm); }, 'ZDT_ToolbarListener' => function ($sm) { return new Listener\ToolbarListener($sm->get('ViewRenderer'), $sm->get('ZDT_Options')); }, 'ZDT_ProfileListener' => function ($sm) { return new Listener\ProfilerListener($sm, $sm->get('ZDT_Options')); }, 'ZDT_TimeCollectorListener' => function ($sm) { return new Listener\EventCollectorListener($sm->get('ZDT_TimeCollector')); }, 'ZDT_MemoryCollectorListener' => function ($sm) { return new Listener\EventCollectorListener($sm->get('ZDT_MemoryCollector')); }, 'ZDT_DbCollector' => function ($sm) { $p = false; $db = new Collector\DbCollector(); if ($sm->has('Zend\\Db\\Adapter\\Adapter')) { $adapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); if ($adapter instanceof ProfilingAdapter) { $p = true; $db->setProfiler($adapter->getProfiler()); } } elseif (!$p && $sm->has('ZDT_Zend_Db')) { $adapter = $sm->get('ZDT_Zend_Db'); if ($adapter instanceof ProfilingAdapter) { $db->setProfiler($adapter->getProfiler()); } } return $db; })); }
/** * Returns the profiler event object. * * @return self */ public function getEvent() { if (!isset($this->event)) { $this->event = new ProfilerEvent(); $this->event->setTarget($this); $this->event->setProfiler($this); } return $this->event; }
private function getModules(ProfilerEvent $event) { if (!($application = $event->getApplication())) { return null; } $serviceManager = $application->getServiceManager(); /* @var $moduleManager \Zend\ModuleManager\ModuleManagerInterface */ $moduleManager = $serviceManager->get('ModuleManager'); return array_keys($moduleManager->getLoadedModules()); }
/** * Renders all toolbar entries. * * @param ProfilerEvent $event * @return array * @throws InvalidOptionException */ protected function renderEntries(ProfilerEvent $event) { $entries = array(); $report = $event->getReport(); list($isLatest, $latest) = $this->getLatestVersion(Version::VERSION); $zfEntry = new ViewModel(array('zf_version' => Version::VERSION, 'is_latest' => $isLatest, 'latest' => $latest, 'php_version' => phpversion(), 'has_intl' => extension_loaded('intl'))); $zfEntry->setTemplate('zend-developer-tools/toolbar/zendframework'); $entries[] = $this->renderer->render($zfEntry); $errors = array(); $collectors = $this->options->getCollectors(); $templates = $this->options->getToolbarEntries(); foreach ($templates as $name => $template) { if (isset($collectors[$name])) { try { $collector = new ViewModel(array('report' => $report, 'collector' => $report->getCollector($name))); $collector->setTemplate($template); $entries[] = $this->renderer->render($collector); } catch (RuntimeException $e) { $errors[$name] = $template; } } } if (!empty($errors) || $report->hasErrors()) { $tmp = array(); foreach ($errors as $name => $template) { $cur = sprintf('Unable to render toolbar template %s (%s).', $name, $template); $tmp[] = $cur; $report->addError($cur); } if ($this->options->isStrict()) { throw new InvalidOptionException(implode(' ', $tmp)); } } if ($report->hasErrors()) { $errorTpl = new ViewModel(array('errors' => $report->getErrors())); $errorTpl->setTemplate('zend-developer-tools/toolbar/error'); $entries[] = $this->renderer->render($errorTpl); } return $entries; }
/** * @inheritdoc */ public function getServiceConfig() { return array('aliases' => array('ZendDeveloperTools\\ReportInterface' => 'ZendDeveloperTools\\Report'), 'invokables' => array('ZendDeveloperTools\\Report' => 'ZendDeveloperTools\\Report', 'ZendDeveloperTools\\EventCollector' => 'ZendDeveloperTools\\Collector\\EventCollector', 'ZendDeveloperTools\\ExceptionCollector' => 'ZendDeveloperTools\\Collector\\ExceptionCollector', 'ZendDeveloperTools\\RouteCollector' => 'ZendDeveloperTools\\Collector\\RouteCollector', 'ZendDeveloperTools\\RequestCollector' => 'ZendDeveloperTools\\Collector\\RequestCollector', 'ZendDeveloperTools\\MailCollector' => 'ZendDeveloperTools\\Collector\\MailCollector', 'ZendDeveloperTools\\MemoryCollector' => 'ZendDeveloperTools\\Collector\\MemoryCollector', 'ZendDeveloperTools\\TimeCollector' => 'ZendDeveloperTools\\Collector\\TimeCollector', 'ZendDeveloperTools\\FlushListener' => 'ZendDeveloperTools\\Listener\\FlushListener'), 'factories' => array('ZendDeveloperTools\\Profiler' => function ($sm) { $a = new Profiler($sm->get('ZendDeveloperTools\\Report')); $a->setEvent($sm->get('ZendDeveloperTools\\Event')); return $a; }, 'ZendDeveloperTools\\Config' => function ($sm) { $config = $sm->get('Configuration'); $config = isset($config['zenddevelopertools']) ? $config['zenddevelopertools'] : null; return new Options($config, $sm->get('ZendDeveloperTools\\Report')); }, 'ZendDeveloperTools\\Event' => function ($sm) { $event = new ProfilerEvent(); $event->setReport($sm->get('ZendDeveloperTools\\Report')); $event->setApplication($sm->get('Application')); return $event; }, 'ZendDeveloperTools\\StorageListener' => function ($sm) { return new Listener\StorageListener($sm); }, 'ZendDeveloperTools\\ToolbarListener' => function ($sm) { return new Listener\ToolbarListener($sm->get('ViewRenderer'), $sm->get('ZendDeveloperTools\\Config')); }, 'ZendDeveloperTools\\ProfilerListener' => function ($sm) { return new Listener\ProfilerListener($sm, $sm->get('ZendDeveloperTools\\Config')); }, 'ZendDeveloperTools\\DbCollector' => function ($sm) { $p = false; $db = new Collector\DbCollector(); if ($sm->has('Zend\\Db\\Adapter\\Adapter')) { $adapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); if ($adapter instanceof ProfilingAdapter) { $p = true; $db->setProfiler($adapter->getProfiler()); } } elseif (!$p && $sm->has('Zend\\Db\\Adapter\\ProfilingAdapter')) { $adapter = $sm->get('Zend\\Db\\Adapter\\ProfilingAdapter'); if ($adapter instanceof ProfilingAdapter) { $db->setProfiler($adapter->getProfiler()); } } return $db; })); }