/**
  * Stop timers for rendering.
  *
  * @param string $layoutFile
  */
 public function afterLayout($layoutFile)
 {
     DebugTimer::stop('viewRender');
     DebugTimer::stop('controllerRender');
     DebugMemory::record(__d('debug_kit', 'View render complete'));
     $this->_renderComplete = true;
 }
Ejemplo n.º 2
0
 /**
  * Renders view for given action and layout.
  * Adds timers, for all subsequent rendering, and injects the debugKit toolbar.
  *
  * @param string $action Name of action to render for
  * @param string $layout Layout to use
  * @return string Rendered Element
  */
 public function render($action = null, $layout = null)
 {
     DebugTimer::start('viewRender', __d('debug_kit', 'Rendering View'));
     $out = parent::render($action, $layout);
     DebugTimer::stop('viewRender');
     DebugTimer::stop('controllerRender');
     DebugMemory::record(__d('debug_kit', 'View render complete'));
     if (empty($this->request->params['requested']) && $this->Helpers && $this->Helpers->attached('Toolbar')) {
         $backend = $this->Helpers->Toolbar->getName();
         $this->Helpers->Toolbar->{$backend}->send();
     }
     if (empty($this->output)) {
         return $out;
     }
     return $this->output;
 }
Ejemplo n.º 3
0
 /**
  * test making memory use markers.
  *
  * @return void
  */
 public function testMemorySettingAndGetting()
 {
     DebugMemory::clear();
     $result = DebugMemory::record('test marker');
     $this->assertTrue($result);
     $result = DebugMemory::getAll(true);
     $this->assertEquals(count($result), 1);
     $this->assertTrue(isset($result['test marker']));
     $this->assertTrue(is_numeric($result['test marker']));
     $result = DebugMemory::getAll();
     $this->assertTrue(empty($result));
     DebugMemory::record('test marker');
     DebugMemory::record('test marker');
     $result = DebugMemory::getAll();
     $this->assertEquals(count($result), 2);
     $this->assertTrue(isset($result['test marker']));
     $this->assertTrue(isset($result['test marker #2']));
 }
Ejemplo n.º 4
0
 /**
  * Test Before Render callback
  *
  * @return void
  */
 public function testBeforeRender()
 {
     $this->_loadController(array('panels' => array('timer', 'session')));
     $MockPanel = $this->getMock('DebugPanel');
     $MockPanel->expects($this->once())->method('beforeRender');
     $this->Controller->Toolbar->panels['timer'] = $MockPanel;
     $this->Controller->Toolbar->beforeRender($this->Controller);
     $this->assertTrue(isset($this->Controller->helpers['DebugKit.Toolbar']));
     $this->assertEquals($this->Controller->helpers['DebugKit.Toolbar']['output'], 'DebugKit.HtmlToolbar');
     $this->assertEquals($this->Controller->helpers['DebugKit.Toolbar']['cacheConfig'], 'debug_kit');
     $this->assertTrue(isset($this->Controller->helpers['DebugKit.Toolbar']['cacheKey']));
     $this->assertTrue(isset($this->Controller->viewVars['debugToolbarPanels']));
     $vars = $this->Controller->viewVars['debugToolbarPanels'];
     $expected = array('plugin' => 'DebugKit', 'elementName' => 'session_panel', 'content' => $this->Controller->Toolbar->Session->read(), 'disableTimer' => true, 'title' => '');
     $this->assertEquals($expected, $vars['session']);
     $memory = DebugMemory::getAll();
     $this->assertTrue(isset($memory['Controller render start']));
 }
 /**
  * beforeRender callback
  *
  * Calls beforeRender on all the panels and set the aggregate to the controller.
  *
  * @param Controller $controller
  * @return void
  */
 public function beforeRender(Controller $controller)
 {
     if (!class_exists('DebugTimer')) {
         return null;
     }
     DebugTimer::stop('controllerAction');
     DebugTimer::start('processToolbar', __d('debug_kit', 'Processing toolbar data'));
     $vars = $this->_gatherVars($controller);
     $this->_saveState($controller, $vars);
     $this->javascript = array_unique(array_merge($this->javascript, $vars['javascript']));
     $this->css = array_unique(array_merge($this->css, $vars['css']));
     unset($vars['javascript'], $vars['css']);
     $controller->set(array('debugToolbarPanels' => $vars, 'debugToolbarJavascript' => $this->javascript, 'debugToolbarCss' => $this->css));
     $isHtml = !isset($controller->request->params['ext']) || $controller->request->params['ext'] === 'html';
     if (!$controller->request->is('ajax') && $isHtml) {
         $format = 'Html';
     } else {
         $format = 'FirePhp';
     }
     $controller->helpers[] = 'DebugKit.DebugTimer';
     $controller->helpers['DebugKit.Toolbar'] = array('output' => sprintf('DebugKit.%sToolbar', $format), 'cacheKey' => $this->cacheKey, 'cacheConfig' => 'debug_kit', 'forceEnable' => $this->settings['forceEnable']);
     DebugTimer::stop('processToolbar');
     DebugMemory::record(__d('debug_kit', 'Controller render start'));
 }
Ejemplo n.º 6
0
 /**
  * Clear out any existing memory points
  *
  * @return void
  * @deprecated Use DebugMemory::clear() instead.
  */
 public static function clearMemoryPoints()
 {
     return DebugMemory::clear();
 }
Ejemplo n.º 7
0
 /**
  * beforeRender callback
  *
  * Calls beforeRender on all the panels and set the aggregate to the controller.
  *
  * @return void
  **/
 public function beforeRender($controller)
 {
     if (!class_exists('DebugTimer')) {
         return null;
     }
     DebugTimer::stop('controllerAction');
     $vars = $this->_gatherVars($controller);
     $this->_saveState($controller, $vars);
     $controller->set(array('debugToolbarPanels' => $vars, 'debugToolbarJavascript' => $this->javascript));
     DebugTimer::start('controllerRender', __d('debug_kit', 'Render Controller Action'));
     DebugMemory::record(__d('debug_kit', 'Controller render start'));
 }
Ejemplo n.º 8
0
 /**
  * Clear out any existing memory points
  *
  * @return void
  */
 public static function clear()
 {
     self::$__points = array();
 }