解决thinkphp5不能给某模块单独设置调试模式
解决tp5无法单独设置某个模块开启或关闭DEBUG
关闭thinkphp5的追踪模式(右下角的图标)
由于项目开发涉及调用API,所以需要在实际环境中制作与调试。那么现在网站前台已经完成,域名可能会有用户访问,为了防止被图谋不轨的人利用了DEBUG信息,需要对网站前台模块禁用DEBUG模式和追踪模式,后台还在开发需要开启DEBUG模式和追踪模式。可是thinkphp5只能配置全局的调试模式,在文件/application/config.php中配置参数app_debug和app_trace,那么就只好自己动手改了(本着一个思想就是不能动thinkphp5核心文件)。
前提:没有做伪静态,如果做了伪静态就要根据URL中的字符来区别对待了
目标:index模块关闭调试模式,admin模块开启调试模式。
修改文件:/application/config.php
修改方法:
$module = \think\Request::instance()->url(); // 获取访问URL
$debugArr = ['admin']; // 开启调试模式的模块名,如果做了伪静态则要根据URL来区别对待了
$isDebug = false; // 默认为关闭调试模式
$i = count($debugArr);
while($i){
$i--;
if(strpos($module, $debugArr[$i]) !== false){
$isDebug = true;
break;
}
}
return [
// +----------------------------------------------------------------------
// | 应用设置
// +----------------------------------------------------------------------
......
// 应用调试模式
'app_debug' => $isDebug,
// 应用Trace
'app_trace' => $isDebug,
......
];
以上思路基本没问题,但可以会有大小写的问题或者把模块、控制器等都提取出来,有空再来完善。
自己开发的网站海宁皮革城,正在完善中,欢迎指教!