我在PHP中有大约2000行代码...有些地方我有一些回声在这里和那里知道这或那个做得很好......但是我对每一项任务做了更多的追踪和回应。 ..我在函数输入和函数返回之前的回声...但是所有这些回声污染了代码和屏幕,并且在准备生产时删除或注释掉它是一个难题......
这个问题,怎么说,回应这个和那个,但是当我说调试关闭时,停止回声..你在代码中怎么做...我想要的是
global $debug_echo;
$debug_echo = true;
if ($debug_echo) {echo "function xyz - start";}
if ($debug_echo) {echo "function xyz - end";}
...
...
所以有了这个,我可以通过一次改变随处调试......是否有意义?
答案 0 :(得分:2)
调试的最佳方法是使用常量。因此,在文件的顶部,或者您想要打开或关闭调试模式的任何地方,都可以执行此操作
define('DEBUG', true);
然后检查你是否想做
if(DEBUG === true) { echo 'something here'; }
你只需要声明一次常量,然后它就可以在整个代码范围内使用,只要它在某处声明。
答案 1 :(得分:0)
在核心文件中,例如config.php(通常包含在Web应用程序的所有子文件中),有类似的内容:
$debug = true;
if($debug){
ini_set('display_errors', 1);
error_reporting(E_ALL);
}else{
error_reporting(0);
}
然后只需将true更改为false即可禁用调试。
如果你想在脚本中间转储错误,比如MySQL查询,那么这就是一堆完全不同的鱼。
查看此幻灯片:http://www.slideshare.net/asgrim1/errors-exceptions-logging-php-hants-oct-13
答案 2 :(得分:0)
您可以做以下事情:
function is_dev() {
return isset($_SERVER['APP_ENV'] AND $_SERVER['APP_ENV'] === 'DEV')
}
..在您的apache虚拟主机配置/ .htaccess
中SetEnv APP_ENV DEV
如果您正在使用框架或动态创建SQL查询,则可以在is_dev()
返回true时输出它们。
if(is_dev()) {
echo $sql;
}