/** * 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; }
/** * 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; }
/** * 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'])); }
/** * 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')); }
/** * Clear out any existing memory points * * @return void * @deprecated Use DebugMemory::clear() instead. */ public static function clearMemoryPoints() { return DebugMemory::clear(); }
/** * 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')); }
/** * Clear out any existing memory points * * @return void */ public static function clear() { self::$__points = array(); }