真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

yii2中組件是什么意思-創(chuàng)新互聯(lián)

這篇文章主要介紹yii2中組件是什么意思,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在鄂托克等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站設計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設公司 網(wǎng)站設計制作按需設計,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設,鄂托克網(wǎng)站建設費用合理。

組件是YII框架application(應用)的主要組成部分,它是 [yii\base\Component]的實例或者子類。組件有三個重要特征(功能):

·屬性(properties)

·事件(events)

·行為(behaviors)

單獨或者組合使用這些特征,可以讓yii框架的類變得更加易用和可定制。舉個例子,引入一個用戶交互組件[yii\jui\DataPicker\data picker wigets],可以很輕松的在視圖中生成一個日期選擇控件(jquery ui date picker)。

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

DatePicker掛件的屬性很容易被修改,原因就在于他繼承了類[yii\base\Componet]

盡管組件很強大,但是其開銷也大于普通的類對象,原因在于組件需要額外的內(nèi)存和CPU時間去處理事件(events)和行為(behaviors).如果你的組件不需要事件和行為這兩個特征(功能),可以直接繼承[yii\base\Object],這樣你的組件在性能(效率)上和普通類對象一致,且支持屬性(properties)。

編寫一個繼承[yii\base\Component]或者[yii\base\Object]的類,需要遵循以下約定:

   ·假設你重寫了構(gòu)造函數(shù),必須定義一個參數(shù)$config,作為構(gòu)造函數(shù)的最后一個參數(shù),此參數(shù)被傳遞給父類的構(gòu)造函數(shù)使用

   ·在重寫的構(gòu)造函數(shù)的結(jié)尾必須調(diào)用父類的構(gòu)造函數(shù)

   ·假設你重寫了[yii\base\Object::init()|init()]方法,那么必須在重寫的init方法開始調(diào)用父類的init方法

舉個例子

namespace yii\components\MyClass;
use yii\base\Object;
class MyClass extends Object
{
    public $prop1;
    public $prop2;
    public function __construct($param1, $param2, $config = [])
    {
        // ... initialization before configuration is applied
        parent::__construct($config);
    }
    public function init()
    {
        parent::init();
        // ... initialization after configuration is applied
    }
}

遵循如下示例,可使你的組件在創(chuàng)建時屬性即可被配置(初始化):

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

提示:使用[Yii::createOject()]的方式看起來更加復雜,但是因為[Yii::createObject]是基于依賴注入的實現(xiàn),因此更加強大

[yii\base\Object]類強制實現(xiàn)如下生命周期:

(1)在構(gòu)造函數(shù)里實現(xiàn)預初始化,可以在這個時候設定默認的屬性值;

(2)通過$config配置對象,在構(gòu)造函數(shù)里通過對象配置可以覆蓋默認值;

(3)在[yii\base\Object::init()|init()]方法里,進行初始化后的配置。可以在init方法里實現(xiàn)例行檢查和屬性正?;瘷z查;

(4)對象方法調(diào)用。

開始的三個階段都在構(gòu)造函數(shù)里實現(xiàn),這意味著當你得到一個對象的實例時,它已經(jīng)被初始化為適當?shù)臓顟B(tài),可以被放心的使用。

以上是“yii2中組件是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁名稱:yii2中組件是什么意思-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/jcdod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部