久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      yii2中組件什么意思

      yii2中組件什么意思

      組件是YII框架application(應(yīng)用)的主要組成部分,它是 [yiibaseComponent]的實(shí)例或者子類。組件有三個重要特征(功能):

      ·屬性(properties)

      ·事件(events)

      ·行為(behaviors)

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

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

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

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

      編寫一個繼承[yiibaseComponent]或者[yiibaseObject]的類,需要遵循以下約定:

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

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

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

      舉個例子

      namespace yiicomponentsMyClass; use yiibaseObject; 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()]的方式看起來更加復(fù)雜,但是因?yàn)閇Yii::createObject]是基于依賴注入的實(shí)現(xiàn),因此更加強(qiáng)大

      [yiibaseObject]類強(qiáng)制實(shí)現(xiàn)如下生命周期:

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

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

      (3)在[yiibaseObject::init()|init()]方法里,進(jìn)行初始化后的配置??梢栽趇nit方法里實(shí)現(xiàn)例行檢查和屬性正?;瘷z查;

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

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

      PHP中文網(wǎng),有大量免費(fèi)的Yii入門教程,歡迎大家學(xué)習(xí)!

      贊(0)
      分享到: 更多 (0)
      ?
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號