Example #1
0
 /**
  * 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);
     }
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 /**
  * @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;
     }));
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
 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());
 }
Example #6
0
 /**
  * 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;
 }
Example #7
0
 /**
  * @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;
     }));
 }