trejder
trejder

Reputation: 17495

Where exactly YII_DEBUG is defined?

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

Answers (1)

Michiel
Michiel

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

Related Questions