确切地说YII_DEBUG在哪里定义?

时间:2014-04-03 07:40:06

标签: yii

我的Yii应用程序有一个标准(自动生成的)index.php引导程序文件。它包含:

defined('YII_DEBUG') or define('YII_DEBUG', TRUE);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3);

当我把这两行:

var_dump(defined('YII_DEBUG'));
var_dump(YII_DEBUG);

在这两个Yii常数的定义下,我得到了例外行为(两次true)。

当我评论第一个代码块的第一行(YII_DEBUG定义)时,我也得到了预期的结果 - false + Notice: Use of undefined constant YII_DEBUG

当我留下YII_DEBUG的定义时,奇怪的事情开始发生,但是从var_dump移动这两行index.php并将它们放在配置文件的开头。

我期待同样的行为(没有任何变化,YII_DEBUG仍未定义),而是我得到true + false

发生了什么事?我错过了什么? Yii应用程序生命周期的哪一点YII_DEBUG常量已定义

编辑在这两个print_r(get_defined_constants(true)['user']);下面添加var_dump确认,YII_DEBUG在第二个方案中定义,在第一个方案中未定义

1 个答案:

答案 0 :(得分:5)

YII_DEBUG设置为YiiBase.php中的false,由yii.php调用,包含在index.php