入口腳本是負責啟動一個請求處理週期。用戶訪問只是通過PHP腳本。
下圖顯示了一個應用程式的結構 -


Web應用程式(以及控制臺應用程式)具有一個單一入口腳本。終端用戶從入口腳本發起一個請求。然後,入口腳本實例化應用實例並將請求轉發給它們。
控制臺應用程式入口腳本通常存儲在一個專案基本路徑並命名為yii.php。Web應用程式入口腳本必須存儲在Web訪問的目錄下。它通常是index.php。
入口腳本執行以下操作 -
-
定義常量
-
註冊 Composer 自動加載
-
包括 Yii 檔
-
加載配置
-
創建和配置一個應用程式實例
-
處理傳入的請求
以下是基本的應用程式入口腳本的範本-
<?php //defining global constants defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); //register composer autoloader require(__DIR__ . '/../vendor/autoload.php'); //include yii files require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); //load application config $config = require(__DIR__ . '/../config/web.php'); //create, config, and process reques (new yii\web\Application($config))->run(); ?>
以下是控制臺應用程式的入口腳本 -
#!/usr/bin/env php <?php /** * Yii console bootstrap file. * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */ //defining global constants defined('YII_DEBUG') or define('YII_DEBUG', true); //register composer autoloader require(__DIR__ . '/vendor/autoload.php'); require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php'); //load config $config = require(__DIR__ . '/config/console.php'); //apply config the application instance $application = new yii\console\Application($config); //process request $exitCode = $application->run(); exit($exitCode); ?>
定義全局常量最好的地方是入口腳本。有三個Yii常量被定義-
-
YII_DEBUG − 定義是否在調試模式。如果設置為true,那麼將看到更多的日誌數據和細節錯誤的調用堆疊。
-
YII_ENV − 定義環境模式。默認值是prod。
可用值為 prod, dev 和 test. 它們在配置檔中用來定義:例如,一個不同的資料庫連接(本地和遠程)或其他值。
-
YII_ENABLE_ERROR_HANDLER − 指定是否啟用默認Yii的錯誤處理程式。
定義一個全局常數,常用下麵的代碼-
//defining global constants defined('YII_DEBUG') or define('YII_DEBUG', true); which is equivalent to: if(!defined('YII_DEBUG')) { define('YII_DEBUG', true); }
注 - 全局常量應在入口腳本的開頭定義,以便包含其他PHP檔時生效。