In thinkphp bezieht sich Routing auf die Zuordnung, die dem entsprechenden Handler gemäß der URL zugewiesen ist. Seine Funktion besteht darin, die URL-Zugriffsadresse zu vereinfachen und eine korrekte Analyse gemäß dem definierten Routing-Typ durchzuführen. Einfach ausgedrückt ist Routing das Parsen eines Pfads, der die Anforderung an das entsprechende Modul, den entsprechenden Controller oder die entsprechende Methode analysiert.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Thinkphp v5.1-Version, Dell G3-Computer.
Lassen Sie uns den Routing-Mechanismus von ThinkPHP5 untersuchen.
Obwohl das komplette Entwicklungshandbuch von TP5 sehr klar über das Routing spricht, untersuchen wir in diesem Artikel dennoch, worum es beim Routing von TP5 geht. Schließlich ist das Lesen eines Blogs komfortabler als das Lesen eines Buches.
Stellen Sie zunächst drei Fragen:
Route bezieht sich auf die Zuordnung, die dem entsprechenden Handler basierend auf der URL zugewiesen ist.
Einfach ausgedrückt handelt es sich um eine Pfadanalyse. Entsprechend dem vom Client übermittelten Pfad wird die Anforderung an das entsprechende Modul/den entsprechenden Controller/die entsprechende Methode analysiert.
Das offizielle Dokument ist wie folgt definiert => Die Rolle des Routings besteht darin, URL-Zugriffsadressen zu vereinfachen und eine korrekte Analyse basierend auf dem definierten Routing-Typ durchzuführen.
Manuelle Erklärung: Wenn wir normalerweise gemäß unseren Gewohnheiten auf unser ThinkPHP-Projekt zugreifen, sollte die reguläre URL so geschrieben werden (lokales Beispiel): http://localhost/project name/public/index.php /Module name /Controllername/Methodenname
Nachdem ich eine Zeichenfolge von URLs eingegeben habe, werde ich sehr verzweifelt sein (flüstern) => „Ich möchte nur eine kleine Schnittstelle testen, die es mir ermöglicht, eine so lange Zeichenfolge von Adressen einzugeben.“ Die Adresse ist zu lang und ich kann mich nicht daran erinnern ...“ Zu diesem Zeitpunkt können wir Routing verwenden, um seine Adresse zu vereinfachen und einige Regeln zu definieren und gleichzeitig die Adresse zu kürzen.
Manche Leute platzen vielleicht heraus: Um den Weg zu vereinfachen. Natürlich ist das einer der Gründe, aber der Grund ist nicht so einfach.
Die Vereinfachung des Weges ist ein wichtiger Grund, denn ich dachte zunächst, der Weg sei zu lang und lief über die Route, um später abzubiegen, aber später stellte ich fest, dass die Rolle der Route nicht eingeschränkt ist den Weg zu vereinfachen.
Wir können die erzwungene Verwendung von Routen aktivieren, sodass jeder nur über die von mir definierten Routen eintreten kann. Dies hat einen Vorteil, wenn Sie in einigen Controllern einige Skripte schreiben, auf die Benutzer nicht zugreifen sollen. Sie können die vollständige Routendurchsetzung aktivieren. Wenn Benutzer auf diese Skripts zugreifen und die Skripts die Datenbank ändern, ist dies sonst gefährlicher.
Außerdem können wir definieren, ob der Eintrag aus diesem Pfad eine Get-Operation oder eine Post-Operation ist, sodass es nicht wie zuvor zu einer Controller-Methode kommen kann, die sehr chaotisch ist. Natürlich werden einige Leute sagen, dass es keine große Sache ist, wenn sowohl auf get als auch auf post zugegriffen werden kann. Tatsächlich ist die Unterscheidung dieser Methoden hilfreicher, um die Idee der Restful API zu verkörpern.
Ebenso werde ich nicht über die Vorschriften von http und https sprechen.
Finden Sie, dass Routing ein bisschen magisch ist, da wir hier sind? Es stellt sich heraus, dass es so viele Dinge kann. Schauen wir uns also an, wie man es nutzt.
Lassen Sie uns zunächst die Konfigurationsinformationen verstehen. Achtung: Im ersten roten Kästchen schaltet tp den Routing-Modus standardmäßig für uns ein. Im zweiten roten Kästchen deaktiviert tp die erzwungene Verwendung des Routings standardmäßig. Auch jetzt kann ich über unseren üblichen Adressmodus erfolgreich zugreifen, und auch der Zugriff über Routing kann erfolgreich sein.
Wenn ich normalerweise an Projekten arbeite, ändere ich dies aus Sicherheitsgründen in „true“, also werfen wir einen Blick auf den Effekt Adresse Der Zugriff kann erfolgreich sein, daher aktivieren wir jetzt die erzwungene Verwendung des Routings: Die gleiche Adresse hat einen Fehler gemeldet und der Fehler „Route nicht gefunden“ wurde ausgegeben. Da wir diese Route nicht in der Routing-Datei definiert haben, wurde ein Fehler ausgegeben, der darauf hinweist, dass wir nun gezwungen sind, die Route zu verwenden. Lassen Sie es uns jetzt definieren. Beginnen Sie zunächst mit dem Einfachsten: Suchen Sie die Routendatei. Zuerst müssen wir die unten stehende Routing-Klasse vorstellen und darüber nachdenken Wir nennen es die statische Get-Methode. Anhand des Methodennamens können wir leicht erkennen, dass über die Get-Methode darauf zugegriffen wird. Was stellen also der erste und der zweite Parameter dar? Der zweite Parameter stellt das Modul/den Controller in der regulären URL/Methode dar? Der erste Parameter stellt den Namen dar, den Sie verwenden möchten, um das folgende Modul/den folgenden Controller/die folgende Methode zu ersetzen. Mit anderen Worten, ich habe ursprünglich http://localhost/xx/public/index.php/xx/test/xx verwendet, um auf meine Controller-Methode zuzugreifen, aber jetzt benötige ich nur noch http://localhost/xx/public/index .php/xx kann auf meine Controller-Methoden zugreifen. Sehen Sie sich den Effekt an: Route-Zugriff erfolgreich verwendet. Schauen wir uns dann die Formulierung dieser Regel genauer an (z. B. den Unterschied zwischen Get- und Post-Zugriff). Ich ändere jetzt den Get Methode zur Post-Methode Dann verwende ich die get-Methode, um darauf zuzugreifen und zu sehen, was passiert: Sie können sehen, dass wir nicht darauf zugreifen können, wenn wir nur get verwenden Kannst du darauf zugreifen? Wie wäre es mit: Spürst du den Spaß am Routing? Detaillierter können wir die Route auch so definieren: Der dritte Parameter stellt die Zugriffsmethode dar. Die Form, die ich hier definiert habe, ist, dass sowohl Get- als auch Post-Operationen darauf zugreifen können. Der letzte Parameter stellt dar, ob Um das https-Protokoll zu überprüfen, wird es nicht überprüft. Wenn es wahr ist, können wir unsere Schnittstelle weiter schützen. Was den Effekt betrifft, werde ich ihn nicht demonstrieren. Was ist sonst noch das Besondere am Routing? Das Routing kann sogar die von der Get-Operation übergebenen Parameter mit der URL zusammenführen. Unsere ursprüngliche Get-Operation sollte so aussehen: URL? id=1. Nach dem Routing können wir es als url/1 definieren. Auf diese Weise ist sogar der ID-Parameter ausgeblendet. Was den Prozess betrifft, gehen Sie einfach zum Entwicklungshandbuch und suchen Sie danach. Natürlich verfügt das Routing auch über einige andere Hilfsfunktionen, z. B. Abschlussfunktionen usw. Ich werde sie nicht einzeln vorstellen, da diese Hilfsfunktionen im Entwicklungsprozess nicht sehr häufig verwendet werden kann es im vollständigen Entwicklungshandbuch nachlesen. Die relevante Einführung in das Routing und die Vorteile der Verwendung von Routing werden hier vorgestellt. 【Verwandte Tutorial-Empfehlung: Thinkphp Framework】Mehr
Das obige ist der detaillierte Inhalt vonWas ist Thinkphp-Routing?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!