入口文件 index.php 位于 web 目錄下面。
入口文件內容:一般格式如下:
<?php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/../../vendor/autoload.php'); require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php'); require(__DIR__ . '/../../common/config/bootstrap.php'); require(__DIR__ . '/../config/bootstrap.php'); $config = yiihelpersArrayHelper::merge( require(__DIR__ . '/../../common/config/main.php'), require(__DIR__ . '/../../common/config/main-local.php'), require(__DIR__ . '/../config/main.php'), require(__DIR__ . '/../config/main-local.php') ); $application = new yiiwebApplication($config); $application->run();
入口文件代碼解讀:
前兩行是兩個 define 語句::defined(‘YII_DEBUG’) or define(‘YII_DEBUG’, true); defined(‘YII_ENV’) or define(‘YII_ENV’, ‘dev’);
定義當前的運行模式和環(huán)境。如果定義了 YII_DEBUG , 那么表示當前為調試狀態(tài),應用在運行過程中,會有一些調試信息的輸出。 在拋出異常時,也會有一個詳細的調用棧的顯示。默認情況下, YII_DEBUG 為 false 。 但在開發(fā)過程中,最好按上面寫的那樣,定義為 true 這樣便于查找和分析錯誤。
如果定義了 YII_ENV ,那么就是指定了當前應用的運行環(huán)境。 上面的代碼顯示應用將運行于 dev 環(huán)境。默認情況下, YII_ENV 為 prod 表示產(chǎn)品環(huán)境。
這些環(huán)境只是一個名稱,具體的意義和環(huán)境內容要看環(huán)境的定義。 dev prod 是Yii安裝后默認的兩個環(huán)境,分別表示開發(fā)環(huán)境和最終的產(chǎn)品環(huán)境。 此外還有一個 test 環(huán)境,表示測試環(huán)境。
環(huán)境與模式的作用不同。環(huán)境在代碼中主要是影響配置文件。 YII_ENV 的 dev prod test 三種環(huán)境, 會分別使 YII_ENV_DEV YII_ENV_PRODYII_ENV_TEST 的值為 true 。 這樣,在應用的配置中,特別是在相同的一個配置文件中,可以對不同環(huán)境作出不同的配置。