# phpcms添加类似thinkphp的trace调试功能
**Repository Path**: minxuan927/add-trace-to-phpcms
## Basic Information
- **Project Name**: phpcms添加类似thinkphp的trace调试功能
- **Description**: phpcms添加类似thinkphp的trace调试功能。
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 5
- **Created**: 2021-02-02
- **Last Updated**: 2024-04-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: php调试, PHPCMS
## README
# 给phpcms v9添加trace调试功能
#### 介绍
给phpcms v9添加类似thinkphp的trace功能,方便技术人员在开发阶段的调试。
注意:生成静态化的页面无效
#### 安装教程
1. 添加文件: 将debug目录加到到你的网站根目录里面
2. 开启调试:根目录index.php 开头添加代码: 可参考index.php文件
```
//调试模式:开发阶段设为开启true,部署阶段设为关闭false。
define('APP_DEBUG', true);
include 'debug/debug.class.php';
```
3. 输出调试: pc_base::creat_app();后面加入如下代码
```
if(defined('APP_DEBUG')&&APP_DEBUG){
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){
// ajax 请求的处理方式就不输出调试了 免得js格式错误
}else{
debug::message();
}
}
```
4. 显示错误日志:(如果后台开启了错误日志 就需要修改):phpcms/libs/functions/global.func.php 找到my_error_handler 大约536行
在if(pc_base::load_config('system','errorlog'))上面添加代码
```
if(defined('APP_DEBUG')&&APP_DEBUG){ debug::addmsg($errno.' | '.str_pad($errstr,30).' | '.$errfile.' | '.$errline,2); }
```
5. 显示sql: phpcms/libs/classes/db_mysqli.class.php 的function execute 大约 78行 $this->lastqueryid后添加代码:
```
if(defined('APP_DEBUG')&&APP_DEBUG){ debug::addmsg($sql,1); }
```
为了完美, 可修改同目录下的 mysql.class.php 的 execute 和 access.class.php 的query 里面也加入同样代码 实现其他类型数据库也能输出sql
#### 成功后的效果截图
图1

图2

#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 增加了拖动可改变高度的功能,去掉了原有的thinkphp的流程选项。
2. 代码文件参考了ThinkPHP的trace页面的前端 和yzmcms的debug类文件。