Yii2-Komponente übergeben von Daten an __construct
Ich habe eine lib, die ich verwenden möchte als Komponente. In der config-Datei habe ich es so:
'components' => [
'superLib' => [
'class' => 'SuperLib'
//'__construct' => [$first, $second] Maybe Yii 2 have property for this
],
],
Wie kann ich die übergabe von Daten zu __construct()
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meisten der Zeit, die Sie nicht überschreiben
__construct()
.So ziemlich jedes Objekt in Yii 2 erweitert aus yii\base\Objekt die Eigenschaften der Zuordnung durch Konfigurations-array-Funktion.
Komponenten erweitert von yii\base\ - Komponente, die letztere erstreckte sich von
yii\base\Object
zu. Also in deinem Beispiel zusammen mit dem Klassennamen (beachten Sie, dass Sie sollten geben Sie volle Klassenname mit namespace, während in Ihrem Beispiel ist es im root namespace) können Sie übergeben Sie alle Eigenschaften /Werte-Paaren:Manchmal müssen Sie init() Methode (zum Beispiel für die überprüfung, ob Werte gültige Typen und werfen einige Art von Ausnahmen, für die Einstellung der default-Werte, etc.):
Hier einige nützliche Informationen von offiziellen docs:
Wenn dennoch verwenden möchten, werden zusätzliche Parameter in
__construct
kann man das so machen, dass:Finden Sie es in den offiziellen docs hier im Dritten Beispiel.