溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

yii2.0組件指的是什么

發(fā)布時(shí)間:2021-01-14 10:26:07 來(lái)源:億速云 閱讀:134 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹yii2.0組件指的是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

組件是 Yii 應(yīng)用的主要基石。是 yii\base\Component 類或其子類的實(shí)例。 三個(gè)用以區(qū)分它和其它類的主要功能有:

屬性(Property)             

事件(Event)

行為(Behavior)

或單獨(dú)使用,或彼此配合,這些功能的應(yīng)用讓 Yii 的類變得更加靈活和易用。 以小部件 yii\jui\DatePicker 來(lái)舉例, 這是個(gè)方便你在 視圖 中生成一個(gè)交互式日期選擇器的 UI 組件:

use yii\jui\DatePicker;

echo DatePicker::widget([
    'language' => 'zh-CN',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);use yii\jui\DatePicker;

echo DatePicker::widget([
    'language' => 'zh-CN',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);

這個(gè)小部件繼承自 yii\base\Component,它的各項(xiàng)屬性改寫起來(lái)會(huì)很容易。

正是因?yàn)榻M件功能的強(qiáng)大,他們比常規(guī)的對(duì)象(Object)稍微重量級(jí)一點(diǎn),因?yàn)樗麄円褂妙~外的內(nèi)存和 CPU 時(shí)間來(lái)處理 事件 和 行為 。

如果你不需要這兩項(xiàng)功能,可以繼承 yii\base\Object 而不是 yii\base\Component。這樣組件可以像普通 PHP 對(duì)象一樣高效, 同時(shí)還支持屬性(Property)功能。

當(dāng)繼承 yii\base\Component 或 yii\base\Object 時(shí), 推薦你使用如下的編碼風(fēng)格:

若你需要重寫構(gòu)造方法(Constructor),傳入 $config 作為構(gòu)造器方法最后一個(gè)參數(shù), 然后把它傳遞給父類的構(gòu)造方法。

永遠(yuǎn)在你重寫的構(gòu)造方法結(jié)尾處調(diào)用一下父類的構(gòu)造方法。

如果你重寫了 yii\base\BaseObject::init() 方法,請(qǐng)確保你在 init 方法的開頭處調(diào)用了父類的 init 方法。

<?php

namespace yii\components\MyClass;

use yii\base\BaseObject;

class MyClass extends BaseObject
{
    public $prop1;
    public $prop2;

    public function __construct($param1, $param2, $config = [])
    {
        // ... 在應(yīng)用配置之前初始化

        parent::__construct($config);
    }

    public function init()
    {
        parent::init();

        // ... 應(yīng)用配置后進(jìn)行初始化
    }
}

另外,為了讓組件可以在創(chuàng)建實(shí)例時(shí)能被正確配置,請(qǐng)遵照以下操作流程:

$component = new MyClass(1, 2, ['prop1' => 3, 'prop2' => 4]);
// 方法二:
$component = \Yii::createObject([
    'class' => MyClass::className(),
    'prop1' => 3,
    'prop2' => 4,
], [1, 2])

以上是“yii2.0組件指的是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI