Wenn es um die PHP-Webentwicklung geht, ist sie natürlich untrennbar mit dem Entwicklungsframework verbunden. Das Entwicklungsframework bietet uns flexible Entwicklungsmethoden, MVC-Schichtentrennung, Geschäftsentkopplung usw. In diesem Artikel werden hauptsächlich die relevanten Informationen zum Erlernen des MVC-Framework-Routings in PHP vorgestellt. Freunde, die es benötigen, können darauf zurückgreifen. Ich hoffe, es hilft allen.
Der erste Artikel ist einfacher und befasst sich mit der Routing-Funktion des MVC-Frameworks. . .
Allgemeines Single-Entry-Framework-Routing hat diese Struktur:
domain/index.php/classname/functionname/var1/var2
Die index.php wird hier als Eintrag bezeichnet Datei. . . Für den Server greifen Sie hier nur auf den nach index.php aufgerufenen Controller und die darin enthaltenen Methoden zu. Auch die Werteübergabe wird innerhalb des Frameworks auf Basis der PHP-Ebene implementiert.
Reden ist günstig, zeigen Sie den Code!!
Erstellen Sie zunächst die folgende Dateistruktur
Lass es uns ausprobieren, wie wäre es Um auf die Dateien in Controllern zuzugreifen. . .
Geben Sie den folgenden Inhalt in index.php ein
print_r($_SERVER);
Besuchen Sie dann die folgende Adresse, um es auszuprobieren.
yourdomain/index.php/class/function/var1
Der Autor hier verwendet die lokale Umgebung und die Adresse, die ich besuche, ist localhost/MVC/index.php/class/function/var1
Ich habe die beiden wichtigsten Variablen gepostet
[REQUEST_URI] => /MVC/index.php/class/function/var1
[SCRIPT_NAME] => ; MVC/index.php
Tatsächlich ist das grundlegendste Prinzip des Routings hier:
Verwenden Sie diese beiden Variablen, um die Klasse, Funktion, Parameter usw. in der URL-Adresse zu extrahieren Dann kommt die Klasse include, ruft die entsprechende Funktion auf und übergibt die entsprechenden Parameter über die PHP-Rückruffunktion call_user_func_array.
Als nächstes folgt der Code. Das Lesen des Codes sollte einfacher zu verstehen sein als das, was ich geschrieben habe. Haha~~
index.php-Inhalt ist wie folgt:
<?php # 定义application路径 define(‘APPPATH', trim(__DIR__,'/')); # 获得请求地址 $root = $_SERVER['SCRIPT_NAME']; $request = $_SERVER['REQUEST_URI']; $URI = array(); # 获得index.php 后面的地址 $url = trim(str_replace($root, ”, $request), ‘/'); # 如果为空,则是访问根地址 if (empty($url)) { # 默认控制器和默认方法 $class = ‘index'; $func = ‘welcome'; } else { $URI = explode(‘/', $url); # 如果function为空 则默认访问index if (count($URI) < 2) { $class = $URI[0]; $func = ‘index'; } else { $class = $URI[0]; $func = $URI[1]; } } # 把class加载进来 include(APPPATH . ‘/' . ‘application/controllers/' . $class . ‘.php'); #实例化 $obj = new ucfirst($class); call_user_func_array( # 调用内部function array($obj,$func), # 传递参数 array_slice($URI, 2) );
Fügen Sie die folgenden 2 Dateien in application/controllers hinzu
index.php wird als Standard-Controller verwendet
<?php class Index { function welcome() { echo ‘I am default controller'; } } ?> hello.php <?php class Hello { public function index() { echo ‘hello world'; } public function name($name) { echo ‘hello ‘ . $name; } } ?>
Testen Sie es und prüfen Sie, ob Sie darauf zugreifen können. Gemäß der oben genannten Routing-Struktur. Versuchen wir es
Dieser Zugriff ist normal, die Namensmethode innerhalb der Hallo-Klasse wird korrekt aufgerufen und dann wird der Parameter barbery übergeben. . .
Versuchen Sie es erneut, ohne den Funktionsnamen einzugeben, um zu sehen, ob Sie den Index standardmäßig aufrufen können. .
Die Antwort ist auch ja. . .
Zuletzt besuchen Sie die Stammadresse, um zu sehen, ob
auch korrekt dem Standardcontroller zugeordnet ist. . .
ok, eine einfache MVC-Routing-Funktion ist abgeschlossen. . .
Verwandte Empfehlungen:
Hinweise zum Schreiben Ihres eigenen PHP-MVC-Frameworks
Analyse der Implementierung des PHP-MVC-Musters in der Website-Architektur_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonSo lernen Sie das MVC-Framework in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!