Heim > PHP-Framework > YII > Was sind yii2.0-Komponenten?

Was sind yii2.0-Komponenten?

(*-*)浩
Freigeben: 2019-12-04 11:39:11
Original
2920 Leute haben es durchsucht

Was sind yii2.0-Komponenten?

Komponenten sind die Hauptbausteine ​​von Yii-Anwendungen. Ist eine Instanz der yiibaseComponent-Klasse oder ihrer Unterklassen. Die drei Hauptfunktionen zur Unterscheidung von anderen Klassen sind:

Property (Empfohlenes Lernen: yii-Framework)

Event (Event)

Verhalten (Verhalten)

Entweder allein oder in Verbindung miteinander macht die Anwendung dieser Funktionen Yii-Klassen flexibler und benutzerfreundlicher. Nehmen Sie als Beispiel das Widget yiijuiDatePicker. Dies ist eine UI-Komponente, mit der Sie eine interaktive Datumsauswahl in einer Ansicht generieren können:

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',
    ],
]);
Nach dem Login kopieren

Dieses Widget erbt von yiibaseComponent und seine Eigenschaften können einfach umgeschrieben werden.

Gerade aufgrund der leistungsstarken Funktionen von Komponenten sind sie etwas schwerer als normale Objekte (Object), da sie zusätzlichen Speicher und CPU-Zeit benötigen, um Ereignisse und Verhaltensweisen zu verarbeiten.

Wenn Sie diese beiden Funktionen nicht benötigen, können Sie yiibaseObject anstelle von yiibaseComponent erben. Auf diese Weise kann die Komponente genauso effizient sein wie ein normales PHP-Objekt und gleichzeitig die Eigenschaftsfunktion unterstützen.

Beim Erben von yiibaseComponent oder yiibaseObject wird empfohlen, den folgenden Codierungsstil zu verwenden:

Wenn Sie den Konstruktor (Konstruktor) überschreiben müssen, übergeben Sie $config als Konstruktor Der letzte Parameter der Konstruktormethode und dann an den Konstruktor der übergeordneten Klasse übergeben.

Rufen Sie den Konstruktor der übergeordneten Klasse immer am Ende Ihres überschriebenen Konstruktors auf.

Wenn Sie die Methode yiibaseBaseObject::init() überschreiben, stellen Sie bitte sicher, dass Sie die Init-Methode der übergeordneten Klasse am Anfang der Init-Methode aufrufen.

<?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();

        // ... 应用配置后进行初始化
    }
}
Nach dem Login kopieren

Damit die Komponente beim Erstellen einer Instanz korrekt konfiguriert wird, befolgen Sie bitte außerdem den folgenden Vorgang:

$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])
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas sind yii2.0-Komponenten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage