国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Yii框架官方教程增補(bǔ)篇6——基礎(chǔ)知識(shí):應(yīng)用、組件、配置、生命周期

黃舟
發(fā)布: 2017-02-11 09:32:25
原創(chuàng)
1621人瀏覽過(guò)


應(yīng)用是指請(qǐng)求處理中的執(zhí)行上下文。它的主要任務(wù)是分析用戶請(qǐng)求并將其分派到合適的控制器中以作進(jìn)一步處理。 它同時(shí)作為服務(wù)中心,維護(hù)應(yīng)用級(jí)別的配置。鑒于此,應(yīng)用也叫做前端控制器。

應(yīng)用由入口腳本創(chuàng)建為一個(gè)單例對(duì)象。這個(gè)應(yīng)用單例對(duì)象可以在任何地方通過(guò)?Yii::app()?訪問(wèn)。

1. 應(yīng)用配置

默認(rèn)情況下,應(yīng)用是一個(gè)?CWebApplication?的實(shí)例。要自定義它,我們通常需要提供一個(gè)配置文件 (或數(shù)組) 以創(chuàng)建應(yīng)用實(shí)例時(shí)初始化其屬性值。自定義應(yīng)用的另一種方式是繼承?CWebApplication。

配置是一個(gè)鍵值對(duì)數(shù)組。每個(gè)鍵代表應(yīng)用實(shí)例中某屬性的名字,每個(gè)值即相應(yīng)屬性的初始值。 例如,如下的配置設(shè)定了應(yīng)用的?name?和?defaultController?屬性。

array(
    'name'=>'Yii Framework',
    'defaultController'=>'site',
)
登錄后復(fù)制

我們通常在一個(gè)單獨(dú)的PHP 腳本(e.g.protected/config/main.php)中保存這些配置。在腳本中, 我們通過(guò)以下方式返回此配置數(shù)組:

return array(...);
登錄后復(fù)制

要應(yīng)用此配置,我們將配置文件的名字作為參數(shù)傳遞給應(yīng)用的構(gòu)造器,或像下面這樣傳遞到Y(jié)ii::createWebApplication()?。這通常在?入口腳本?中完成:

$app=Yii::createWebApplication($configFile);
登錄后復(fù)制

提示:?如果應(yīng)用配置非常復(fù)雜,我們可以把它分割為若干文件,每個(gè)文件返回配置數(shù)組中的一部分。 然后,在主配置文件中,我們調(diào)用PHP的?include()?包含其余的配置文件并把它們合并為一個(gè)完整的配置數(shù)組。

2. 應(yīng)用基礎(chǔ)目錄

應(yīng)用基礎(chǔ)目錄指包含了所有安全敏感的PHP腳本和數(shù)據(jù)的根目錄。默認(rèn)狀態(tài)下,它是一個(gè)位于含有入口腳本目錄的名為protected?的子目錄。它可以通過(guò)設(shè)置?application configuration?中的?basePath?屬性自定義。

在應(yīng)用基礎(chǔ)目錄下的內(nèi)容應(yīng)該保護(hù)起來(lái)防止網(wǎng)站訪客直接訪問(wèn)。對(duì)于?Apache HTTP 服務(wù)器, 這可以通過(guò)在基礎(chǔ)目錄中放置一個(gè)?.htaccess?文件很簡(jiǎn)單的實(shí)現(xiàn)。?.htaccess?內(nèi)容如下:

deny from all
登錄后復(fù)制

3. 應(yīng)用組件

應(yīng)用的功能可以通過(guò)其靈活的組件結(jié)構(gòu)輕易地自定義或增強(qiáng)。應(yīng)用管理了一系列應(yīng)用組件,每個(gè)組件實(shí)現(xiàn)一特定功能。 例如,應(yīng)用通過(guò)?CUrlManager?和?CHttpRequest?的幫助解析來(lái)自用戶的請(qǐng)求。

通過(guò)配置應(yīng)用的?components?屬性, 我們可以自定義應(yīng)用中用到的任何組件類及其屬性值。例如,我們可以配置應(yīng)用的CMemCache?組件, 這樣它就可以使用多個(gè) memcache 服務(wù)器實(shí)現(xiàn)緩存:

array(
    ......
    'components'=>array(
        ......
        'cache'=>array(
            'class'=>'CMemCache',
            'servers'=>array(
                array('host'=>'server1', 'port'=>11211, 'weight'=>60),
                array('host'=>'server2', 'port'=>11211, 'weight'=>40),
            ),
        ),
    ),
)
登錄后復(fù)制

如上所示,我們?cè)?components?數(shù)組中添加了?cache?元素。cache?元素表明此組件的類是?CMemCache, 他的servers?屬性應(yīng)依此初始化。

要訪問(wèn)一個(gè)應(yīng)用組件,使用?Yii::app()->ComponentID?,其中的?ComponentID?是指組件的ID(例如Yii::app()->cache)。

應(yīng)用的組件可以通過(guò)在其配置中設(shè)置?enabled?為 false 禁用。當(dāng)我們?cè)L問(wèn)被禁用的組件時(shí)將返回 Null。

提示:?默認(rèn)情況下,應(yīng)用組件會(huì)按需創(chuàng)建。這意味著一個(gè)應(yīng)用的組件如果沒(méi)有在一個(gè)用戶請(qǐng)求中被訪問(wèn),它可能根本不被創(chuàng)建。 因此,如果一個(gè)應(yīng)用配置了很多組件,其總體性能可能并不會(huì)下降。有的應(yīng)用組件 (例如?CLogRouter) 可能需要在無(wú)論它們是否被訪問(wèn)的情況下都要被創(chuàng)建。 要實(shí)現(xiàn)這個(gè),需將其ID列在應(yīng)用的preload?屬性里。

4. 核心應(yīng)用組件

Yii 預(yù)定義了一系列核心應(yīng)用組件,提供常見(jiàn) Web 應(yīng)用中所用的功能。例如,?request?組件用于解析用戶請(qǐng)求并提供例如 URL,cookie 等信息。 通過(guò)配置這些核心組件的屬性,我們可以在幾乎所有的方面修改Yii 的默認(rèn)行為。

下面我們列出了由?CWebApplication?預(yù)定義的核心組件。

  • assetManager:?CAssetManager?- 管理私有資源文件的發(fā)布。

  • authManager:?CAuthManager?- 管理基于角色的訪問(wèn)控制 (RBAC).

  • cache:?CCache?- 提供數(shù)據(jù)緩存功能。注意,你必須指定實(shí)際的類(例如CMemCache,?CDbCache)。 否則,當(dāng)你訪問(wèn)此組件時(shí)將返回 NULL。

  • clientScript:?CClientScript?- 管理客戶端腳本 (javascripts 和 CSS).

  • coreMessages:?CPhpMessageSource?- 提供 Yii 框架用到的核心信息的翻譯。

  • db:?CDbConnection?- 提供數(shù)據(jù)庫(kù)連接。注意,使用此組件你必須配置其?connectionString?屬性。

  • errorHandler:?CErrorHandler?- 處理未捕獲的 PHP 錯(cuò)誤和異常。

  • format:?CFormatter?- 格式化數(shù)值顯示。此功能從版本 1.1.0 起開(kāi)始提供。

  • messages:?CPhpMessageSource?- 提供Yii應(yīng)用中使用的信息翻譯。

  • request:?CHttpRequest?- 提供關(guān)于用戶請(qǐng)求的信息。

  • securityManager:?CSecurityManager?- 提供安全相關(guān)的服務(wù),例如散列,加密。

  • session:?CHttpSession?- 提供session相關(guān)的功能。

  • statePersister:?CStatePersister?- 提供全局狀態(tài)持久方法。

  • urlManager:?CUrlManager?- 提供 URL 解析和創(chuàng)建相關(guān)功能

  • user:?CWebUser?- 提供當(dāng)前用戶的識(shí)別信息。

  • themeManager:?CThemeManager?- 管理主題。

5. 應(yīng)用的生命周期

當(dāng)處理用戶請(qǐng)求時(shí),應(yīng)用將經(jīng)歷如下聲明周期:

  1. 通過(guò)?CApplication::preinit()?預(yù)初始化應(yīng)用;

  2. 設(shè)置類的自動(dòng)裝載器和錯(cuò)誤處理;

  3. 注冊(cè)核心類組件;

  4. 加載應(yīng)用配置;

  5. 通過(guò)?CApplication::init()?初始化應(yīng)用:

  • 注冊(cè)應(yīng)用行為;

  • 載入靜態(tài)應(yīng)用組件;

  • 觸發(fā)?onBeginRequest?事件;

  • 處理用戶請(qǐng)求:

    • 解析用戶請(qǐng)求;

    • 創(chuàng)建控制器;

    • 運(yùn)行控制器;

  • 觸發(fā)?onEndRequest?事件。

  • yii執(zhí)行流程

    以上就是Yii框架官方教程增補(bǔ)篇6——基礎(chǔ)知識(shí):應(yīng)用、組件、配置、生命周期的內(nèi)容,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)(miracleart.cn)!

    最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件
    最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件

    每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

    下載
    來(lái)源:php中文網(wǎng)
    本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
    最新問(wèn)題
    開(kāi)源免費(fèi)商場(chǎng)系統(tǒng)廣告
    最新下載
    更多>
    網(wǎng)站特效
    網(wǎng)站源碼
    網(wǎng)站素材
    前端模板
    關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
    php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
    關(guān)注服務(wù)號(hào) 技術(shù)交流群
    PHP中文網(wǎng)訂閱號(hào)
    每天精選資源文章推送
    PHP中文網(wǎng)APP
    隨時(shí)隨地碎片化學(xué)習(xí)
    PHP中文網(wǎng)抖音號(hào)
    發(fā)現(xiàn)有趣的

    Copyright 2014-2025 http://miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)