Reputation: 17495
I have a standard (auto-generated) index.php
bootstrap file for my Yii application. It contains:
defined('YII_DEBUG') or define('YII_DEBUG', TRUE);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3);
When I put these two lines:
var_dump(defined('YII_DEBUG'));
var_dump(YII_DEBUG);
below definition of these two Yii constants, I'm getting an excepted behavior (two times true
).
When I comment first line of first code block (YII_DEBUG
definition) I'm also getting an expected results -- false
+ Notice: Use of undefined constant YII_DEBUG
.
Strange things starts to happen, when I leave definition of YII_DEBUG
commented, but move these two var_dump
lines from index.php
and put them in the beginning of my configuration file.
I expected the very same behavior (nothing has changed, YII_DEBUG
remains undefined), but instead I'm getting true
+ false
.
What has happened? What I'm missing? At which point of Yii application life-cycle the YII_DEBUG
constant has become defined?
EDIT: Adding print_r(get_defined_constants(true)['user']);
below these two var_dump
confirms, that YII_DEBUG
is defined in second scenario and undefined in first one.
Upvotes: 3
Views: 3298
Reputation: 2203
YII_DEBUG
is set to false
in YiiBase.php, that gets called by yii.php, that is included in your index.php
Upvotes: 4