debug.php调试文件应该放哪里
3.2 debug.php 放在什么位置都不行什么原因
3.2 debug.php 放在什么位置都不行什么原因
2016-03-23
以下摘自官方开发文档:
如果检测到应用的配置目录中有存在debug.php文件,则会自动加载该配置文件,并且和系统项目配置文件以及系统调试配置文件合并,也就是说,debug.php配置文件只需要配置和项目配置文件以及系统调试配置文件不同的参数或者新增的参数。
请注意加粗的文字。
个人理解:
经过测试,当 项目名称\Common\Conf\debug.php 下的项存在,且与 项目名称\Home\Conf\config.php 的项相同的时候,显示出来的是config.php里面的项的值。
(注意:这两者的路径问题)
造成这个现象的原因是:覆盖 即TP框架首先加载了Common\Conf\debug.php里面的项的值,然后再加载Home\Conf\config.php 里面的相同项的值,进行了覆盖。
举个例子:
入口文件:define('APP_DEBUG',true);
项目名称\Home\Conf\config.phpconfig.php里面定义项为 'name' =>'Lis'
项目名称\Common\Conf\debug.php里面定义的项为'name' =>'Lis1'
然后 控制器调用C('name')方法;
浏览器最终输出是:Lis
当我们注释掉config.php里面的 'name' =>'Lis'的时候,
浏览器最终输出是:Lis1
那么问题来了?老师演示的那个是怎么实现的呢?
其实很简单。
首先目录如下:
项目名称\Common\Conf\debug.php
项目名称\Common\Conf\config.php (看清楚了吗?config.php的路径不一样)
也举个例子:
入口文件:define('APP_DEBUG',true);
项目名称\Common\Conf\config.phpconfig.php里面定义项为 'name' =>'Lis'
项目名称\Common\Conf\debug.php里面定义的项为'name' =>'Lis1'
然后 控制器调用C('name')方法;
浏览器最终输出:Lis1
总结:
TP3.2和TP3.1的差别很大。但是视频还是具有一定的学习意义的,至少给你自己一个钻研的机会吧
框架的加载顺序是:先加载Common里面的配置文件 -> Home里面的配置文件
举报