Heim >PHP-Framework >YII >Was bedeutet Komponente in yii2?
Die Komponente
ist die Hauptkomponente der YII-Framework-Anwendung (Anwendung). Sie ist eine Instanz oder Unterklasse von [yiibaseComponent]. Komponenten haben drei wichtige Merkmale (Funktionen):
·Eigenschaften (Eigenschaften)
·Ereignisse
·Verhalten
Die Verwendung dieser Funktionen allein oder in Kombination kann die Klassen des Yii-Frameworks benutzerfreundlicher und anpassbarer machen. Durch die Einführung einer Benutzerinteraktionskomponente [yiijuiDataPickerdata picker wigets] können Sie beispielsweise problemlos ein Datumsauswahlsteuerelement (jquery ui date picker) in der Ansicht generieren.
use yii\jui\DatePicker; echo DatePicker::widget([ 'language' => 'ru', 'name' => 'country', 'clientOptions' => [ 'dateFormat' => 'yy-mm-dd', ], ]);
Die Eigenschaften des DatePicker-Widgets lassen sich leicht ändern, da es die Klasse [yiibaseComponet] erbt.
Obwohl die Komponente sehr leistungsfähig ist, ist ihr Overhead größer als der von gewöhnlichen Klassenobjekten, da die Komponente benötigt zusätzlichen Speicher und CPU-Zeit, um Ereignisse und Verhaltensweisen zu verarbeiten. Wenn Ihre Komponente die beiden Funktionen (Funktionen) von Ereignissen und Verhaltensweisen nicht benötigt, können Sie [yiibaseObject] direkt erben, sodass Ihre Komponente die Leistung verbessert (Effizienz). Dasselbe wie bei gewöhnlichen Klassenobjekten und unterstützt Eigenschaften.
Um eine Klasse zu schreiben, die [yiibaseComponent] oder [yiibaseObject] erbt, müssen Sie die folgenden Konventionen befolgen:
·Angenommen, Sie überschreiben Im Konstruktor muss ein Parameter $config als letzter Parameter des Konstruktors definiert werden. Dieser Parameter wird mit
· an den Konstruktor der übergeordneten Klasse übergeben Am Ende des Konstruktors muss der Konstruktor der übergeordneten Klasse umgeschrieben werden ()] Methode, dann muss die Init-Methode der übergeordneten Klasse ausgehend von der überschriebenen Init-Methode aufgerufen werden
Zum Beispielnamespace 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
}
}
Folgen Sie dem folgenden Beispiel, damit die Eigenschaften Ihrer Komponente angezeigt werden können konfiguriert (initialisiert), wenn es erstellt wird. :$component = new MyClass(1, 2, ['prop1' => 3, 'prop2' => 4]);
// alternatively
$component = \Yii::createObject([
'class' => MyClass::className(),
'prop1' => 3,
'prop2' => 4,
], [1, 2]);
Tipp: Die Verwendung von [Yii::createOject()] sieht komplizierter aus, aber da [Yii::createObject] auf der Implementierung der Abhängigkeitsinjektion basiert, es ist leistungsfähiger
Die Klasse [yiibaseObject] erzwingt den folgenden Lebenszyklus:
(1) Die Vorinitialisierung ist im Konstruktor implementiert und die Standardattributwerte können auf festgelegt werden dieses Mal;
(2) Durch das $config-Konfigurationsobjekt kann der Standardwert durch die Objektkonfiguration im Konstruktor überschrieben werden; init()]-Methode, Initialisierungskonfiguration durchführen. Routineprüfungen und Attributnormalisierungsprüfungen können in der Init-Methode implementiert werden
(4) Aufruf der Objektmethode.
Die ersten drei Stufen sind alle im Konstruktor implementiert, was bedeutet, dass, wenn Sie eine Instanz eines Objekts erhalten, dieses im entsprechenden Zustand initialisiert wurde und bedenkenlos verwendet werden kann.
PHP-Website für Chinesisch, es gibt viele kostenlose
Yii-Einführungs-Tutorials, jeder ist willkommen, es zu lernen!
Das obige ist der detaillierte Inhalt vonWas bedeutet Komponente in yii2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!