# 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 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0202/121846_617b4c65_7684763.png "QQ截图20210202121657.png") 图2 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0202/121856_32a457f7_7684763.png "QQ截图20210202121713.png") #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 增加了拖动可改变高度的功能,去掉了原有的thinkphp的流程选项。
2. 代码文件参考了ThinkPHP的trace页面的前端 和yzmcms的debug类文件。