|
本帖最后由 pcjingl 于 2014-8-9 11:02 编辑
框架运行时都包含了哪些文件?弄清这个问题可能会很有帮助。CI本身就带有分析器,具体怎么开启请查看手册的 “调试你的应用程序”,下面让我们来给它增加一个小功能。
首先打开"system\libraries\Profiler.php",在"$_available_sections"数组中增加一个"load_files",类似这样:
PHP复制代码 protected $_available_sections = array(
'benchmarks',
'get',
'memory_usage',
'post',
'uri_string',
'controller_info',
'queries',
'load_files',
'http_headers',
'session_data',
'config'
); 复制代码
然后在类里面增加一个"_compile_load_files"方法,代码如下(这里的代码被论坛编辑器过滤了,请对比类中的_compile_http_headers()方法进行修改):
PHP复制代码 /**
* Compile load files information
* Add by pcjingl
*
* Lists load files
*
* @return string
*/
protected function _compile_load_files ()
{
$files = get_included_files();
$output = "\n\n";
$output .= '<fieldset id="ci_profiler_http_headers" style="border:1px solid #000;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">';
$output .= "\n";
$output .= '<legend style="color:#000;"> '.$this->CI->lang->line('profiler_load_files').' '.count($files).' (<span style="cursor: pointer;">'.$this->CI->lang->line('profiler_section_show').'</span>)</legend>';
$output .= "\n";
$output .= "\n\n<table style='width:100%;display:none' id='ci_profiler_httpheaders_table'>\n";
foreach ($files as $key => $file)
{
$output .= "<tr><td style='vertical-align: top;width:50%;padding:5px;color:#900;background-color:#ddd;'>".$key." </td><td style='width:50%;padding:5px;color:#000;background-color:#ddd;'>".str_replace(FCPATH , '', $file)."</td></tr>\n";
}
$output .= "</table>\n";
$output .= "</fieldset>";
return $output;
} 复制代码
最后找到语言文件"system\language\english\profiler_lang.php",编辑并增加一行代码:
PHP复制代码 $lang['profiler_load_files'] = 'LOAD FILES'; 复制代码
OK! 在你的控制器中激活该分析器($this->output->enable_profiler(TRUE);),前台刷新,效果怎么样?
|
|