2014-04-03 4 views
3

У меня есть стандартный (сгенерированный авто) index.php загрузочный файл для моего приложения Yii. Он содержит:Где именно определяется YII_DEBUG?

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 определяется во втором сценарии, и не определено в первом одном.

ответ

5

YII_DEBUG установлен в false в YiiBase.php, который получает вызывается yii.php, который входит в ваш index.php

Смежные вопросы