首頁 php教程 PHP开发 Yii2.0入口腳本

Yii2.0入口腳本

Nov 25, 2016 pm 02:23 PM

入口腳本是應用程式啟動流程中的第一環,一個應用程式(不管是網頁應用程式還是控制台應用程式)只有一個入口腳本。終端用戶的請求透過入口腳本實例化應用程式並將將請求轉發到應用程式。

Web 應用的入口腳本必須放在終端使用者能夠存取的目錄下,通常命名為 index.php,也可以使用 Web 伺服器能定位到的其他名稱。

控制台應用的入口腳本一般在應用根目錄下命名為 yii(後綴為.php),該檔案需要有執行權限,這樣用戶就能透過命令 ./yii [arguments] [options] 來運行控制台應用程式。

入口腳本主要完成以下工作:

定義全域常數;

註冊Composer 自動載入器;

包含[[Yii]] 類別檔案;

載入應用程式配置;

;

呼叫[[yiibaseApplication::run()]] 來處理請求。

Web 應用

以下是基礎應用模版入口腳本的程式碼:

<?php
    defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;, true);
    defined(&#39;YII_ENV&#39;) or define(&#39;YII_ENV&#39;, &#39;dev&#39;);
    // 注册 Composer 自动加载器
    require(__DIR__ . &#39;/../vendor/autoload.php&#39;);
    // 包含 Yii 类文件
    require(__DIR__ . &#39;/../vendor/yiisoft/yii2/Yii.php&#39;);
    // 加载应用配置
    $config = require(__DIR__ . &#39;/../config/web.php&#39;);
    // 创建、配置、运行一个应用
    (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/
     */
    defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;, true);
    // fcgi 默认没有定义 STDIN 和 STDOUT
    defined(&#39;STDIN&#39;) or define(&#39;STDIN&#39;, fopen(&#39;php://stdin&#39;, &#39;r&#39;));
    defined(&#39;STDOUT&#39;) or define(&#39;STDOUT&#39;, fopen(&#39;php://stdout&#39;, &#39;w&#39;));
    // 注册 Composer 自动加载器
    require(__DIR__ . &#39;/vendor/autoload.php&#39;);
    // 包含 Yii 类文件
    require(__DIR__ . &#39;/vendor/yiisoft/yii2/Yii.php&#39;);
    // 加载应用配置
    $config = require(__DIR__ . &#39;/config/console.php&#39;);
    $application = new yii\console\Application($config);
    $exitCode = $application->run();
    exit($exitCode);
登入後複製

定型地方,Yii 支援以下三個常數:

YII_DEBUG:標識應用程式是否運行在偵錯模式。當在偵錯模式下,應用程式會保留更多日誌訊息,如果拋出異常,會顯示詳細的錯誤呼叫堆疊。因此,調試模式主要適合在開發階段使用,YII_DEBUG 預設值為 false。

YII_ENV:標識應用程式運作的環境,詳情請查閱配置章節。 YII_ENV 預設值為 'prod',表示應用程式運作線上產品環境。

YII_ENABLE_ERROR_HANDLER:標識是否啟用 Yii 提供的錯誤處理,預設為 true。

當定義一個常數時,通常使用類似如下程式碼來定義:

defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;, true);
登入後複製

上面的程式碼等同於:

if (!defined(&#39;YII_DEBUG&#39;)) {
    define(&#39;YII_DEBUG&#39;, true);
}
登入後複製

顯然第一段程式碼更簡潔易懂。

常數定義應該在入口腳本的開頭,這樣包含其他 PHP 檔案時,常數就能生效。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)