<?php<liu21st@gmail.com>namespace Behavior;
class ShowRuntimeBehavior {
public function run(&$content){
if(C('SHOW_RUN_TIME')){
if(false !== strpos($content,'{__NORUNTIME__}')) {
$content = str_replace('{__NORUNTIME__}','',$content);
}else{
$runtime = $this->showTime();
if(strpos($content,'{__RUNTIME__}'))
$content = str_replace('{__RUNTIME__}',$runtime,$content);
else
$content .= $runtime;
}
}else{
$content = str_replace(array('{__NORUNTIME__}','{__RUNTIME__}'),'',$content);
}
}
private function showTime() {
G('beginTime',$GLOBALS['_beginTime']);
G('viewEndTime');
$showTime = 'Process: '.G('beginTime','viewEndTime').'s ';
if(C('SHOW_ADV_TIME')) {
$showTime .= '( Load:'.G('beginTime','loadTime').'s Init:'.G('loadTime','initTime').'s Exec:'.G('initTime','viewStartTime').'s Template:'.G('viewStartTime','viewEndTime').'s )';
}
if(C('SHOW_DB_TIMES') ) {
$showTime .= ' | DB :'.N('db_query').' queries '.N('db_write').' writes ';
}
if(C('SHOW_CACHE_TIMES') ) {
$showTime .= ' | Cache :'.N('cache_read').' gets '.N('cache_write').' writes ';
}
if(MEMORY_LIMIT_ON && C('SHOW_USE_MEM')) {
$showTime .= ' | UseMem:'. number_format((memory_get_usage() - $GLOBALS['_startUseMems'])/1024).' kb';
}
if(C('SHOW_LOAD_FILE')) {
$showTime .= ' | LoadFile:'.count(get_included_files());
}
if(C('SHOW_FUN_TIMES')) {
$fun = get_defined_functions();
$showTime .= ' | CallFun:'.count($fun['user']).','.count($fun['internal']);
}
return $showTime;
}
}