本文整理匯總了PHP中think\Debug::remark方法的典型用法代碼示例。如果您正苦於以下問題:PHP Debug::remark方法的具體用法?PHP Debug::remark怎麽用?PHP Debug::remark使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類think\Debug
的用法示例。
在下文中一共展示了Debug::remark方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: G
/**
* 記錄時間(微秒)和內存使用情況
* @param string $start 開始標簽
* @param string $end 結束標簽
* @param integer $dec 小數位
* @return mixed
*/
function G($start, $end = '', $dec = 6)
{
if ('' == $end) {
\think\Debug::remark($start);
} else {
return 'm' == $dec ? \think\Debug::getRangeMem($start, $end) : \think\Debug::getRangeTime($start, $end, $dec);
}
}
示例2: debug
/**
* 記錄時間(微秒)和內存使用情況
* @param string $start 開始標簽
* @param string $end 結束標簽
* @param integer|string $dec 小數位 如果是m 表示統計內存占用
* @return mixed
*/
function debug($start, $end = '', $dec = 6)
{
if ('' == $end) {
Debug::remark($start);
} else {
return 'm' == $dec ? Debug::getRangeMem($start, $end) : Debug::getRangeTime($start, $end, $dec);
}
}
示例3: showTrace
/**
* 顯示頁麵Trace信息
* @access private
*/
private function showTrace()
{
// 係統默認顯示信息
$files = get_included_files();
$info = [];
foreach ($files as $key => $file) {
$info[] = $file . ' ( ' . number_format(filesize($file) / 1024, 2) . ' KB )';
}
$trace = [];
Debug::remark('START', NOW_TIME);
$base = ['請求信息' => date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']) . ' ' . $_SERVER['SERVER_PROTOCOL'] . ' ' . $_SERVER['REQUEST_METHOD'] . ' : ' . $_SERVER['PHP_SELF'], '運行時間' => Debug::getUseTime('START', 'END', 6) . 's', '內存開銷' => MEMORY_LIMIT_ON ? G('START', 'END', 'm') . 'b' : '不支持', '查詢信息' => N('db_query') . ' queries ' . N('db_write') . ' writes ', '文件加載' => count($files), '緩存信息' => N('cache_read') . ' gets ' . N('cache_write') . ' writes ', '配置加載' => count(Config::get())];
// 讀取項目定義的Trace文件
$traceFile = MODULE_PATH . 'trace.php';
if (is_file($traceFile)) {
$base = array_merge($base, include $traceFile);
}
$debug = Log::getLog();
$tabs = Config::get('trace_page_tabs');
foreach ($tabs as $name => $title) {
switch (strtoupper($name)) {
case 'BASE':
// 基本信息
$trace[$title] = $base;
break;
case 'FILE':
// 文件信息
$trace[$title] = $info;
break;
default:
// 調試信息
$name = strtoupper($name);
if (strpos($name, '|')) {
// 多組信息
$array = explode('|', $name);
$result = [];
foreach ($array as $name) {
$result += isset($debug[$name]) ? $debug[$name] : [];
}
$trace[$title] = $result;
} else {
$trace[$title] = isset($debug[$name]) ? $debug[$name] : '';
}
}
}
unset($files, $info, $base, $debug);
// 調用Trace頁麵模板
ob_start();
include Config::has('tmpl_trace_file') ? Config::get('tmpl_trace_file') : THINK_PATH . 'tpl/page_trace.tpl';
return ob_get_clean();
}
示例4: debug
/**
* 數據庫調試 記錄當前SQL
* @access protected
* @param boolean $start 調試開始標記 true 開始 false 結束
*/
protected function debug($start)
{
if (!empty($this->config['debug'])) {
// 開啟數據庫調試模式
if ($start) {
Debug::remark('queryStartTime', 'time');
} else {
$this->modelSql[$this->model] = $this->queryStr;
// 記錄操作結束時間
Debug::remark('queryEndTime', 'time');
Log::record($this->queryStr . ' [ RunTime:' . Debug::getRangeTime('queryStartTime', 'queryEndTime') . 's ]', 'sql');
}
}
}
示例5: debug
/**
* 數據庫調試 記錄當前SQL
* @access protected
* @param boolean $start 調試開始標記 true 開始 false 結束
*/
protected function debug($start)
{
if (!empty($this->config['debug'])) {
// 開啟數據庫調試模式
if ($start) {
Debug::remark('queryStartTime', 'time');
} else {
$this->modelSql[$this->model] = $this->queryStr;
// 記錄操作結束時間
Debug::remark('queryEndTime', 'time');
$log = $this->queryStr . ' [ RunTime:' . Debug::getRangeTime('queryStartTime', 'queryEndTime') . 's ]';
// SQL性能分析
if (0 === stripos(trim($this->queryStr), 'select')) {
$result = $this->getExplain($this->queryStr);
Log::record('[ EXPLAIN : ' . var_export($result, true) . ' ]', 'sql');
}
Log::record('[ SQL ] ' . $log, 'sql');
}
}
}
示例6: debug
/**
* 數據庫調試 記錄當前SQL及分析性能
* @access protected
* @param boolean $start 調試開始標記 true 開始 false 結束
* @return void
*/
protected function debug($start)
{
if (!empty($this->config['debug'])) {
// 開啟數據庫調試模式
if ($start) {
Debug::remark('queryStartTime', 'time');
} else {
// 記錄操作結束時間
Debug::remark('queryEndTime', 'time');
$runtime = Debug::getRangeTime('queryStartTime', 'queryEndTime');
$log = $this->queryStr . ' [ RunTime:' . $runtime . 's ]';
$result = [];
// SQL性能分析
if ($this->config['sql_explain'] && 0 === stripos(trim($this->queryStr), 'select')) {
$result = $this->getExplain($this->queryStr);
}
// SQL監聽
$this->trigger($this->queryStr, $runtime, $result);
}
}
}
示例7: debug
/**
* 數據庫調試 記錄當前SQL
* @access protected
* @param boolean $start 調試開始標記 true 開始 false 結束
*/
protected function debug($start)
{
if (!empty($this->config['debug'])) {
// 開啟數據庫調試模式
if ($start) {
Debug::remark('queryStartTime', 'time');
} else {
$this->modelSql[$this->model] = $this->queryStr;
// 記錄操作結束時間
Debug::remark('queryEndTime', 'time');
$log = $this->queryStr . ' [ RunTime:' . Debug::getRangeTime('queryStartTime', 'queryEndTime') . 's ]';
// SQL性能分析
if (0 === stripos(trim($this->queryStr), 'select')) {
$pdo = $this->linkID->query("EXPLAIN " . $this->queryStr);
$result = $pdo->fetch(PDO::FETCH_ASSOC);
if (strpos($result['extra'], 'filesort') || strpos($result['extra'], 'temporary')) {
Log::record('SQL:' . $this->queryStr . '[' . $result['extra'] . ']', 'warn');
}
$log .= '[ EXPLAIN : ' . var_export($result, true) . ' ]';
}
Log::record('[ SQL ] ' . $log, 'sql');
}
}
}
示例8: testGetMemPeak
/**
* @covers think\Debug::getMemPeak
* @todo Implement testGetMemPeak().
*/
public function testGetMemPeak()
{
$start = "testGetMemPeakStart";
$end = "testGetMemPeakEnd";
\think\Debug::remark($start);
$str = "";
for ($i = 0; $i < 100000; $i++) {
$str .= "mem";
}
$memPeak = \think\Debug::getMemPeak($start, $end);
// echo "\r\n" . $memPeak . "\r\n";
$this->assertLessThan(238, explode(" ", $memPeak)[0]);
}
示例9: debug
/**
* 數據庫調試 記錄當前SQL
* @access protected
* @param boolean $start 調試開始標記 true 開始 false 結束
*/
protected function debug($start)
{
if ($this->config['debug']) {
// 開啟數據庫調試模式
if ($start) {
Debug::remark('queryStartTime', 'time');
} else {
$this->modelSql[$this->model] = $this->queryStr;
//$this->model = '_think_';
// 記錄操作結束時間
Debug::remark('queryEndTime', 'time');
Log::record($this->queryStr . ' [ RunTime:' . Debug::getUseTime('queryStartTime', 'queryEndTime') . 's ]', 'SQL');
}
}
if (SLOG_ON && $start) {
\think\Slog::sql($this->queryStr, $this->_linkID);
}
}
示例10: testGetMemPeak
/**
* @covers think\Debug::getMemPeak
* @todo Implement testGetMemPeak().
*/
public function testGetMemPeak()
{
$start = "testGetMemPeakStart";
$end = "testGetMemPeakEnd";
Debug::remark($start);
$str = "";
for ($i = 0; $i < 100000; $i++) {
$str .= "mem";
}
$memPeak = Debug::getMemPeak($start, $end);
$this->assertLessThan(400, explode(" ", $memPeak)[0]);
}
示例11: listen
/**
* 監聽標簽的行為
* @param string $tag 標簽名稱
* @param mixed $params 傳入參數
* @param mixed $extra 額外參數
* @param bool $once 隻獲取一個有效返回值
* @return mixed
*/
public static function listen($tag, &$params = null, $extra = null, $once = false)
{
$results = [];
if (isset(self::$tags[$tag])) {
foreach (self::$tags[$tag] as $name) {
if (App::$debug) {
Debug::remark('behavior_start', 'time');
}
$result = self::exec($name, $tag, $params, $extra);
if (!is_null($result) && $once) {
return $result;
}
if (App::$debug) {
Debug::remark('behavior_end', 'time');
if ($name instanceof \Closure) {
$name = 'Closure';
} elseif (is_object($name)) {
$name = get_class($name);
}
Log::record('[ BEHAVIOR ] Run ' . $name . ' @' . $tag . ' [ RunTime:' . Debug::getRangeTime('behavior_start', 'behavior_end') . 's ]', 'info');
}
if (false === $result) {
// 如果返回false 則中斷行為執行
break;
}
$results[] = $result;
}
}
return $once ? null : $results;
}
示例12: exec
/**
* 執行某個行為
* @param mixed $class 要執行的行為
* @param string $tag 方法名(標簽名)
* @param Mixed $params 傳人的參數
* @param mixed $extra 額外參數
* @return mixed
*/
public static function exec($class, $tag = '', &$params = null, $extra = null)
{
App::$debug && Debug::remark('behavior_start', 'time');
if (is_callable($class)) {
$result = call_user_func_array($class, [&$params, $extra]);
$class = 'Closure';
} elseif (is_object($class)) {
$result = call_user_func_array([$class, $tag], [&$params, $extra]);
$class = get_class($class);
} else {
$obj = new $class();
$result = $tag && is_callable([$obj, $tag]) ? $obj->{$tag}($params, $extra) : $obj->run($params, $extra);
}
if (App::$debug) {
Debug::remark('behavior_end', 'time');
Log::record('[ BEHAVIOR ] Run ' . $class . ' @' . $tag . ' [ RunTime:' . Debug::getRangeTime('behavior_start', 'behavior_end') . 's ]', 'info');
}
return $result;
}