
- Yii 教程
- Yii - 首頁
- Yii - 概述
- Yii - 安裝
- Yii - 建立頁面
- Yii - 應用結構
- Yii - 入口指令碼
- Yii - 控制器
- Yii - 使用控制器
- Yii - 使用動作
- Yii - 模型
- Yii - 小部件
- Yii - 模組
- Yii - 檢視
- Yii - 佈局
- Yii - 資源
- Yii - 資源轉換
- Yii - 擴充套件
- Yii - 建立擴充套件
- Yii - HTTP 請求
- Yii - 響應
- Yii - URL 格式
- Yii - URL 路由
- Yii - URL 規則
- Yii - HTML 表單
- Yii - 驗證
- Yii - 特設驗證
- Yii - AJAX 驗證
- Yii - 會話
- Yii - 使用 Flash 資料
- Yii - Cookie
- Yii - 使用 Cookie
- Yii - 檔案上傳
- Yii - 格式化
- Yii - 分頁
- Yii - 排序
- Yii - 屬性
- Yii - 資料提供者
- Yii - 資料小部件
- Yii - ListView 小部件
- Yii - GridView 小部件
- Yii - 事件
- Yii - 建立事件
- Yii - 行為
- Yii - 建立行為
- Yii - 配置
- Yii - 依賴注入
- Yii - 資料庫訪問
- Yii - 資料訪問物件
- Yii - 查詢構建器
- Yii - Active Record
- Yii - 資料庫遷移
- Yii - 主題
- Yii - RESTful API
- Yii - RESTful API 實踐
- Yii - 欄位
- Yii - 測試
- Yii - 快取
- Yii - 片段快取
- Yii - 別名
- Yii - 日誌記錄
- Yii - 錯誤處理
- Yii - 身份驗證
- Yii - 授權
- Yii - 本地化
- Yii - Gii
- Gii – 建立模型
- Gii – 生成控制器
- Gii – 生成模組
- Yii 有用資源
- Yii - 快速指南
- Yii - 有用資源
- Yii - 討論
Yii - 入口指令碼
入口指令碼負責啟動請求處理週期。它們只是使用者可以訪問的 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 檔案時生效,全域性常量應該在入口指令碼的開頭定義。
廣告