PageRenderTime 27ms CodeModel.GetById 16ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/framework/vendor/smarty3/lib/libs/sysplugins/smarty_internal_debug.php

http://zoop.googlecode.com/
PHP | 129 lines | 75 code | 10 blank | 44 comment | 4 complexity | 6f4457c686a6756fcbd33172e6e44ce3 MD5 | raw file
  1<?php
  2
  3/**
  4* Smarty Internal Plugin Debug
  5* 
  6* Class to collect data for the Smarty Debugging Consol
  7* 
  8* @package Smarty
  9* @subpackage Debug
 10* @author Uwe Tews 
 11*/
 12/**
 13* Smarty Internal Plugin Debug Class
 14*/
 15class Smarty_Internal_Debug extends Smarty_Internal_Data {
 16    // template data
 17    static $template_data = array();
 18
 19    /**
 20    * Start logging of compile time
 21    */
 22    public static function start_compile($template)
 23    {
 24        $key = self::get_key($template);
 25        self::$template_data[$key]['start_time'] = self::get_time();
 26    } 
 27
 28    /**
 29    * End logging of compile time
 30    */
 31    public static function end_compile($template)
 32    {
 33        $key = self::get_key($template);
 34        self::$template_data[$key]['compile_time'] += self::get_time() - self::$template_data[$key]['start_time'];
 35    } 
 36
 37    /**
 38    * Start logging of render time
 39    */
 40    public static function start_render($template)
 41    {
 42        $key = self::get_key($template);
 43        self::$template_data[$key]['start_time'] = self::get_time();
 44    } 
 45
 46    /**
 47    * End logging of compile time
 48    */
 49    public static function end_render($template)
 50    {
 51        $key = self::get_key($template);
 52        self::$template_data[$key]['render_time'] += self::get_time() - self::$template_data[$key]['start_time'];
 53    } 
 54
 55    /**
 56    * Start logging of cache time
 57    */
 58    public static function start_cache($template)
 59    {
 60        $key = self::get_key($template);
 61        self::$template_data[$key]['start_time'] = self::get_time();
 62    } 
 63
 64    /**
 65    * End logging of cache time
 66    */
 67    public static function end_cache($template)
 68    {
 69        $key = self::get_key($template);
 70        self::$template_data[$key]['cache_time'] += self::get_time() - self::$template_data[$key]['start_time'];
 71    } 
 72    /**
 73    * Opens a window for the Smarty Debugging Consol and display the data
 74    */
 75    public static function display_debug($smarty)
 76    { 
 77        // prepare information of assigned variables
 78        $_assigned_vars = $smarty->tpl_vars;
 79        ksort($_assigned_vars);
 80        $_config_vars = $smarty->config_vars;
 81        ksort($_config_vars);
 82        $_template = new Smarty_Template ($smarty->debug_tpl, $smarty);
 83        $_template->caching = false;
 84        $_template->force_compile = false;
 85        $_template->security = false;
 86        $_template->cache_id = null;
 87        $_template->compile_id = null;
 88        $_template->assign('template_data', self::$template_data);
 89        $_template->assign('assigned_vars', $_assigned_vars);
 90        $_template->assign('config_vars', $_config_vars);
 91        $_template->assign('execution_time', $smarty->_get_time() - $smarty->start_time);
 92        echo $smarty->fetch($_template);
 93    } 
 94
 95    /**
 96    * get_key
 97    */
 98    static function get_key($template)
 99    {
100        // calculate Uid if not already done
101        if ($template->templateUid == '') {
102            $template->getTemplateFilepath();
103        } 
104        $key = $template->templateUid;
105        if (isset(self::$template_data[$key])) {
106            return $key;
107        } else {
108            self::$template_data[$key]['name'] = $template->getTemplateFilepath();
109            self::$template_data[$key]['compile_time'] = 0;
110            self::$template_data[$key]['render_time'] = 0;
111            self::$template_data[$key]['cache_time'] = 0;
112            return $key;
113        } 
114    } 
115
116    /**
117    * return current time
118    * 
119    * @returns double current time
120    */
121    static function get_time()
122    {
123        $_mtime = microtime();
124        $_mtime = explode(" ", $_mtime);
125        return (double)($_mtime[1]) + (double)($_mtime[0]);
126    } 
127} 
128
129?>