Komponenten sind die Hauptbausteine von Yii-Anwendungen. (Empfohlenes Lernen: yii-Tutorial)
ist eine Instanz der yiibaseComponent-Klasse oder ihrer Unterklassen. Die drei Hauptfunktionen zur Unterscheidung von anderen Klassen sind:
Eigenschaft
Ereignis
Verhalten
Wird einzeln oder in Verbindung mit den einzelnen Klassen verwendet Zum anderen 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', ], ]);
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 für die Verarbeitung von Ereignissen und Verhaltensweisen benötigen.
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 yiibaseObject::init() überschreiben, stellen Sie bitte sicher, dass Sie die Init-Methode der übergeordneten Klasse am Anfang der Init-Methode aufrufen.
Das obige ist der detaillierte Inhalt vonWo sind die YII-Komponenten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!