ThinkPHP implementiert modulübergreifende Aufrufe

不言
Freigeben: 2023-03-30 08:38:02
Original
1856 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Implementierung modulübergreifender Aufrufe in ThinkPHP vorgestellt, die einen gewissen Referenzwert haben. Jetzt können Freunde in Not darauf verweisen.

Verwenden Sie $this, um Methoden aufzurufen das aktuelle Modul, aber in vielen Fällen werden Methoden anderer Module oft im aktuellen Modul aufgerufen. In diesem Artikel werden hauptsächlich die modulübergreifenden Aufrufvorgänge von ThinkPHP vorgestellt. Freunde, die sie benötigen, können sich auf

Verwenden Sie $this, um Methoden im aktuellen Modul aufzurufen. In vielen Fällen werden jedoch häufig Methoden anderer Module im aktuellen aufgerufen Modul. ThinkPHP verfügt über integrierte zwei spezielle Großbuchstabenmethoden, die A-Methode und die R-Methode, um Probleme mit modulübergreifenden Aufrufen zu lösen.

Derzeit gibt es eine Indexoperation im Indexmodul. Die spezifischen Codes für das Benutzermodul und die ShowName-Operation lauten wie folgt:

<?php
class UserAction extends Action{
 public function showName(){
 echo "Hello World";
 }
}
?>
Nach dem Login kopieren

Wir werden dies in Index tun. Die obige showName-Operation wird in der Indexoperation des Moduls aufgerufen.

Modulübergreifender Aufrufvorgang über eine Methode

Eine Methode wird zum Instanziieren anderer Module verwendet (entspricht dem neuen Schlüsselwort). Nachdem das Modul instanziiert wurde, kann es innerhalb des Moduls als aufgerufen werden ein Objekt.
Rufen Sie das showName-Operationsbeispiel des Benutzermoduls in der Indexoperation des Indexmoduls auf:

<?php
class IndexAction extends Action{
 public function index(){
 header("Content-Type:text/html; charset=utf-8");
 // 实例化 User 模块
 $User = A(&#39;User&#39;);
 // 调用 User 模块中的方法
 $User->showName();
 }
}
?>
Nach dem Login kopieren

Eine Methode unterstützt auch gruppenübergreifende Aufrufe und Cross -Projektaufrufmodule. Die Syntax lautet wie folgt:

A('Modulname')

// 常用例子如下
A(&#39;User&#39;) //调用当前项目的 User 模块,如上面的例子
A(&#39;Admin://User&#39;) //调用 Admin 项目的 User 模块
A(&#39;Admin/User&#39;) //调用 Admin 分组的 User 模块
A(&#39;Admin://Tool/User&#39;) //调用 Admin 项目 Tool 分组的 User 模块
Nach dem Login kopieren

Rufen Sie Operationen über Module hinweg über R-Methoden auf
ThinkPHP bietet auch R-Methoden, die Operationsmethoden anderer Module direkt aufrufen könnenÄndern Sie das obige Beispiel der Verwendung einer A-Methode zur R-Methode:

<?php
class IndexAction extends Action{
 public function index(){
 header("Content-Type:text/html; charset=utf-8");
 // 调用 User 模块中的方法
 R(&#39;User/showName&#39;);
 }
}
?>
Nach dem Login kopieren

Die R-Methode unterstützt auch gruppenübergreifende Aufrufe und projektübergreifende Aufrufmethoden. Die Syntax lautet wie folgt:

R('< ;Projektname://>Modulname/Operation'<, array()>)

// 常用例子如下
R(&#39;User/showName&#39;) //调用当前项目的 User 模块的 showName 方法,如上面的例子
R(&#39;Admin://User/showName&#39;) //调用 Admin 项目 User 模块的 showName 方法
R(&#39;Admin/User/showName&#39;) //调用 Admin 分组 User 模块的 showName 方法
R(&#39;Admin://Tool/User/info&#39;) //调用 Admin 项目 Tool 分组的 User 模块的 info 方法
R 方法接收参数
R 方法也支持对调用的方法传入参数,因为实际上调动的操作,可能是需要传入参数的。
R 方法的第二个参数为数组,该数组将作为被调用操作的参数传入。如下面的例子所示:
R( &#39;User/showName&#39;,array(5) );
Nach dem Login kopieren

Dieses Beispiel zeigt, dass die showName-Operation 5 solcher Parameter akzeptiert. Die entsprechende showName-Operation kann sein:

<?php
class UserAction extends Action{
 public function showName($id){
 // 根据 id 参数获取用户信息的代码
 }
}
?>
Nach dem Login kopieren

Um mehrere Parameter zu übergeben, definieren Sie dann nacheinander mehrere Elemente im Array()-Parameterarray der R-Methode. das ist Can.

Eine Methode oder R-Methode?
Wie aus dem obigen Beispiel ersichtlich ist, können sowohl die A-Methode als auch die R-Methode die Operationen anderer Module aufrufen. Ist es besser, die A-Methode oder die R-Methode zu verwenden? Die Vorschläge hier lauten wie folgt: Wenn Sie mehrere Methoden in anderen Modulen verwenden möchten, wird empfohlen, Methode A zu verwenden, um verschiedene Methoden des Moduls über Objekte aufzurufen, um eine mehrfache Instanziierung des Objekts zu vermeiden Wenn Sie nur eine der Methoden in anderen Modulen verwenden müssen, ist die R-Methode zweifellos die prägnanteste .

Verwandte Empfehlungen:

Detailliertes Beispiel für die ThinkPHP-Implementierung von Update-Daten (Demo)

Das obige ist der detaillierte Inhalt vonThinkPHP implementiert modulübergreifende Aufrufe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage