yii2中組件是什么意思

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

成都創新互聯公司從2013年創立,是專業互聯網技術服務公司,擁有項目成都做網站、網站建設、外貿營銷網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元潁泉做網站,已為上家服務,為潁泉各地企業和個人服務,聯系電話:18980820575

組件是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]

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

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

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

   ·在重寫的構造函數的結尾必須調用父類的構造函數

   ·假設你重寫了[yii\base\Object::init()|init()]方法,那么必須在重寫的init方法開始調用父類的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
    }
}

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

$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]是基于依賴注入的實現,因此更加強大

[yii\base\Object]類強制實現如下生命周期:

(1)在構造函數里實現預初始化,可以在這個時候設定默認的屬性值;

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

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

(4)對象方法調用。

開始的三個階段都在構造函數里實現,這意味著當你得到一個對象的實例時,它已經被初始化為適當的狀態,可以被放心的使用。

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

當前文章:yii2中組件是什么意思
轉載源于:http://m.kartarina.com/article48/pppjep.html

成都網站建設公司_創新互聯,為您提供網站營銷Google網頁設計公司商城網站服務器托管網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

微信小程序開發
主站蜘蛛池模板: gogo少妇无码肉肉视频| 2019亚洲午夜无码天堂| 精品少妇人妻av无码专区| 国产精品无码国模私拍视频| 中文字幕无码不卡在线| 无码人妻丰满熟妇啪啪网站牛牛| 亚洲中文字幕无码久久精品1| 亚洲av永久无码| 国产AV无码专区亚汌A√| 无码专区一va亚洲v专区在线| 成人无码a级毛片免费| 亚洲精品无码mⅴ在线观看| 精品人妻系列无码人妻免费视频| 久久久久亚洲AV无码观看| 最新国产AV无码专区亚洲| 国产精品第一区揄拍无码| 一本大道无码av天堂| 久久久无码精品亚洲日韩蜜桃| 精品无码成人网站久久久久久| 亚洲av无码乱码国产精品fc2| 无码少妇一区二区浪潮av| 无码日韩人妻av一区免费| 亚洲天堂2017无码中文| 蜜桃臀无码内射一区二区三区| 亚洲自偷自偷偷色无码中文 | 日韩av片无码一区二区三区不卡 | 无码精品前田一区二区| 在线观看亚洲AV每日更新无码| 无码人妻精品一区二区| 日韩av无码中文无码电影| 久久久人妻精品无码一区| 精品无码一区二区三区水蜜桃| 毛片亚洲AV无码精品国产午夜 | 无码人妻丰满熟妇区五十路| 日韩精品无码专区免费播放| 人妻丰满熟妇av无码区不卡| 亚洲2022国产成人精品无码区| 精品无码人妻一区二区三区| 日韩精品少妇无码受不了| 久久久久av无码免费网| 亚洲AV成人片无码网站|