首頁 >php框架 >YII >yii2.0 組件是什麼

yii2.0 組件是什麼

(*-*)浩
(*-*)浩原創
2019-12-04 11:39:112896瀏覽

yii2.0 組件是什麼

元件是 Yii 應用的主要基石。是 yii\base\Component 類別或其子類別的實例。三個用來區分它和它類別的主要功能有:

屬性(Property)              (建議學習:yii框架

)事件(Event)

行為(Behavior)

或單獨使用,或彼此配合,這些功能的應用讓Yii 的類別變得更加靈活和易用。以小工具 yii\jui\DatePicker 來舉例, 這是一個方便你在 視圖 中產生一個互動式日期選擇器的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',
    ],
]);

這個小工具繼承自yii\base\Component,它的各項屬性改寫起來會很容易。

正是因為元件功能的強大,他們比常規的物件(Object)稍微重量級一點,因為他們要使用額外的記憶體和 CPU 時間來處理 事件 和 行為 。 

如果你不需要這兩個功能,可以繼承 yii\base\Object 而不是 yii\base\Component。這樣元件可以像普通 PHP 物件一樣高效, 同時也支援屬性(Property)功能。

當繼承yii\base\Component 或yii\base\Object 時, 推薦你使用如下的編碼樣式:

如果你需要重寫建構方法(Constructor ),傳入$config 作為建構器方法最後一個參數, 然後把它傳遞給父類別的建構方法。

永遠在你重寫的建構方法結尾處呼叫一下父類別的建構方法。

如果你重寫了 yii\base\BaseObject::init() 方法,請確保你在 init 方法的開頭處呼叫了父類別的 init 方法。

<?php

namespace yii\components\MyClass;

use yii\base\BaseObject;

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

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

        parent::__construct($config);
    }

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

        // ... 应用配置后进行初始化
    }
}

另外,為了讓元件在建立實例時能正確配置,請遵照以下操作流程:

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

以上是yii2.0 組件是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn