In fast allen Tutorials oder Antworten zu SO sehe ich eine übliche Methode, um Daten von einem Controller an die View zu senden. Die Klasse View sieht oft ähnlich aus wie der folgende Code:
%Vor%Ich verstehe nicht, warum ich die Daten in ein Array setzen und dann extract ($ this- & gt; _data) aufrufen muss. Warum legen Sie nicht direkt einige Eigenschaften in die Ansicht vom Controller wie
%Vor%dann in meinem Layout oder Template-Datei könnte ich einfach tun:
%Vor%Es macht Sinn, die Ansichtsdaten logisch zu gruppieren und von den Klasseneigenschaften der internen Ansicht zu unterscheiden.
Mit PHP können Sie Eigenschaften dynamisch zuweisen, sodass Sie die View-Klasse einfach instanziieren und Ihre Ansichtsdaten als Eigenschaften zuweisen können. Persönlich würde ich das aber nicht empfehlen. Was, wenn Sie über die Ansichtsdaten iterieren wollten, oder einfach nur zum Debugging ausgeben?
Das Speichern der View-Daten in einem Array oder das Speichern von Objekten bedeutet nicht, dass Sie $this->get('x')
verwenden müssen, um darauf zuzugreifen. Eine Option ist die Verwendung von PHP5s Property Overloading , mit der Sie die Daten speichern können ein Array, aber die Schnittstelle $this->x
mit den Daten aus der Vorlage haben.
Beispiel:
%Vor% Die Methode __get()
wird aufgerufen, wenn Sie es versuchen um auf eine Eigenschaft zuzugreifen, die nicht existiert. So können Sie jetzt tun:
In der Vorlage:
%Vor%Ich schätze, der Grund könnte einfach "weniger tippen" sein, aber das hat einige nette Nebenwirkungen:
$this->
bedeuten?" befassen müssen. Tags und Links php templates variable-assignment