In diesem Artikel wird hauptsächlich die neue Verwendung von Widget in ThinkPHP3.1 vorgestellt. Freunde, die es benötigen, können darauf verweisen.
Die Unterstützung von Action und View in der ThinkPHP3.0-Version ist relativ unzureichend und kann nur implementiert werden Grundlegende Rendering-Ausgabe der Vorlage. Die mit der Veröffentlichung von Version 3.1 eingeführte mehrschichtige MVC-Funktion hat neue Ideen für die Implementierung von Widgets gebracht. Sehen wir uns an, wie wir sie implementieren.
Da ThinkPHP 3.1 Unterstützung für mehrschichtiges MVC hinzufügt, kann Version 3.1 mehrschichtige Controller-Funktionen unterstützen, sodass wir der Controller-Ebene eine weitere Ebene hinzufügen können: Widget-Ebene.
Erstellen Sie zunächst ein Widget-Verzeichnis unter dem Lib-Verzeichnis des Projekts und erstellen Sie eine TestWidget-Klasse (Lib/Widget/TestWidget.class.php) wie folgt:
class TestWidget extends Action{ public function hello($name=''){ echo ("hello,".$name."!"); } }
Wir sehen, dass der Unterschied zwischen TestWidget und früher darin besteht, dass es nicht die Widget-Klasse, sondern direkt die Action-Klasse erbt. Dies bedeutet, dass die Action-Methode direkt in TestWidget aufgerufen werden kann, einschließlich des Renderings Ausgabe der Vorlage.
Wie nennen wir dieses Widget, nachdem die Definition abgeschlossen ist? Die W-Methode wird definitiv nicht funktionieren. Diesmal wird die R-Methode benötigt. Die Funktion der
R-Methode besteht darin, den Betrieb des Moduls aus der Ferne aufzurufen, aber 3.1 hat ihm eine neue Rolle gegeben und kann den Aufruf der Betriebsmethoden aller Controller-Ebenen unterstützen. Daher können wir das Widget in der Vorlage aufrufen Dies:
{:R('Test/hello',array('ThinkPHP'),'Widget')}
kann in einem bestimmten Bereich auf der Seite ausgegeben werden:
hello,ThinkPHP!
Zusätzlich zur Aktionssteuerung Auf andere Controller-Ebenen außerhalb des Controllers kann nicht direkt über die URL zugegriffen werden, sodass diese Widget-Methode nur intern über die R-Methode aufgerufen werden kann.
Sie können Model in der TestWidget-Klasse aufrufen, um andere Daten auszugeben. Wenn Sie Ihre eigene Vorlage rendern müssen, können Sie einfach die Anzeigemethode direkt aufrufen.
class TestWidget extends Action{ public function hello($name=''){ $this->assign('name',$name); $this->display('Test:hello'); } }
Wir erstellen eine Hallo-Vorlagendatei (Tpl/Test/hello.html) im Tpl/Test/-Verzeichnis des Projekts und fügen die Ausgabe hinzu:
Hello,{$name}!
Wenn Sie die Vorlagendatei wie das vorherige Widget im aktuellen Verzeichnis ablegen möchten, können Sie Folgendes verwenden:
class TestWidget extends Action{ public function hello($name=''){ $this->assign('name',$name); $this->display(dirname(__FILE__).'/Test/hello.html'); } }
Zu diesem Zeitpunkt können Sie die soeben definierte Hallo-Vorlagendatei im Verzeichnis Widget/Test/ ablegen.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Methode zum Exportieren nach Excel oder CSV basierend auf PHP
Das obige ist der detaillierte Inhalt vonInformationen zur Verwendung von Widget in ThinkPHP3.1. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!