


So erstellen Sie ein Routing-System für eine PHP-App von Grund auf
Nov 29, 2024 pm 04:23 PMWenn Sie gerade erst am Anfang Ihrer Reise in die PHP-Entwicklung stehen, Es besteht die M?glichkeit, dass Sie vollst?ndige Dateinamen in der URL zum Navigieren verwenden Anwendung, wie server/contact.php. Keine Sorge, wir haben alle so angefangen und so lernen wir.
Heute m?chte ich Ihnen dabei helfen, die Navigation in Ihren Dateien zu verbessern Anwendung. Wir werden über das Routing sprechen, da es in jedem Fall von entscheidender Bedeutung ist moderne Anwendung. Es wird Ihnen helfen, einen Schritt nach vorne zu machen professionelle PHP-Entwicklung.
Ein Routing-System bildet einfach ein HTTP ab Anfrage an einen Anfragehandler (Funktion oder Methode). Mit anderen Worten, es definiert, wie wir ohne das navigieren oder auf verschiedene Teile einer App zugreifen Sie müssen den Dateinamen eingeben. Sie k?nnen dies durch Erstellen oder Festlegen tun Routen (oder Pfade). Beispielsweise erm?glicht uns der Routenserver/Kontakt den Zugriff auf die Datei contact.php.
Wie Routing funktioniert
Lassen Sie mich zun?chst einmal daran erinnern, was ein Routing ist. Routenführung erm?glicht es uns, unsere App besser zu strukturieren und Unordnung zu beseitigen URLs. Dies sind zwei Hauptfunktionen, die jedes gute Routing-System bietet:
- Definiert, welche Aktion für jede eingehende Anfrage ausgeführt werden soll.
- Generiert SEO-freundliche URLs (z. B. /views/users statt view/user.php?all).
Um ein Routing-System zu erstellen, ben?tigen wir einen Router, der nicht mehr ist als der Eintragsdatei zu unserer App. Standardm??ig hei?t diese Eintragsdatei index.php. Innerhalb der Datei definieren wir das Routing-System dank [switch](https://www.php.net/manual/en/control-structures.switch.php) oder [match](https://www.php. net/manual/en/control-structures.match.php) Anweisungen.
Zu guter Letzt müssen wir alle Anfragen an den Router umleiten. Dies erfolgt in der Konfigurationsdatei des PHP-Servers.
Projekt-Setup
Bevor wir fortfahren, sehen wir uns an, wie das Projekt aussehen wird:
Dateistruktur
Verwenden Sie die folgenden Shell-Befehle, um das zu starten Projekt:
mkdir?php-routing?&?cd?php-routingtouch?index.php?.htaccess
- .htaccess: Eine Apache-Konfigurationsdatei auf Verzeichnisebene. Sie ben?tigen es nicht, wenn Sie einen NGINX-Server verwenden.
- index.php: Dies ist die Router- und Eintragsdatei des Projekts. Alle eingehenden Anfragen werden hierher umgeleitet.
- Ansichten: Dieser Ordner enth?lt alle UIs für das Projekt.
So leiten Sie alle HTTP-Anfragen an den Router um
Wir haben bereits erw?hnt, dass die Umleitung auf dem PHP-Server erfolgt config-Datei. Sie müssen also einige Anpassungen vornehmen, je nachdem, ob Sie m?chten Verwenden Sie einen Apache- oder NGINX-Server.
Mit Apache umleiten
Hier k?nnen wir ganz einfach die .htaccess-Datei verwenden, die wir bereits im Stammverzeichnis des Projekts erstellt haben. Fügen Sie die folgenden Anweisungen hinzu:
mkdir?php-routing?&?cd?php-routingtouch?index.php?.htaccess
- Zeile 1: Wir aktivieren die Runtime-Rewriting-Engine des Apache-Servers.
- Zeile 2: Wir beschr?nken den Zugriff auf physische Dateien.
- Zeile 3: Wir leiten alle anstehenden Anfragen an die index.php weiter.
Hinweis: Wenn die Website oder App vorhanden ist Beachten Sie im Stammverzeichnis des Servers (oder wenn wir keinen virtuellen Host haben), wie die .htaccess-Datei aussehen sollte:
RewriteEngine?On RewriteCond?%{REQUEST_FILENAME}?!-f RewriteRule?^(.*)$?index.php
Ersetzen Sie im obigen Code /folder/ durch den Namen des Ordners, der Ihre Site enth?lt.
Mit NGINX umleiten
Die Standardkonfigurationsdatei hei?t nginx.conf. Diese Datei befindet sich in etc/nginx, usr/local/nginx/conf oder /usr/local/etc/nginx.
Um zu index.php umzuleiten, verwenden Sie den folgenden Befehl:
RewriteEngine?On RewriteBase?/folder/ RewriteRule?^index\.php$?-?[L]RewriteCond?%{REQUEST_FILENAME}?!-f RewriteCond?%{REQUEST_FILENAME}?!-d RewriteRule?.?/folder/index.php?[L]
Der Standort/Block gibt an, dass dies für alle Standorte gilt, es sei denn, der Standort wird ausdrücklich angegeben /
Die try_files-Direktive teilt dem Server mit, dass bei jeder Anfrage an den URI, der mit dem Block am Speicherort übereinstimmt, zuerst $uri (oder $uri/) ausprobiert werden muss Datei vorhanden ist, stellen Sie die Datei bereit. Andernfalls wird die Fallback-Option (index.php) verwendet. Und dieses letzte Verhalten ist das, was wir wollen.
Laden Sie den Server nach der ?nderung neu.
So erstellen Sie das Routing-System
Wir wissen jetzt, wie Routing funktioniert, und das wissen wir auch sogar alle Anfragen verschicken zum Router. Jetzt ist es an der Zeit, den Code für den Router in index.php zu schreiben.
Erstellen Sie zun?chst eine Variable für die HTTP-Anforderungszeichenfolge:
location?/?{ ????????try_files?$uri?$uri/?/index.php}
Diese Variable hilft uns beim Vergleich mit vielen Routen (Pfaden) und rufen Sie die entsprechende Ansichtsschnittstelle auf.
$request?=?$_SERVER['REQUEST_URI'];
Was passiert hier? Die switch-Anweisung ?hnelt einer Reihe von if-Anweisungen für denselben Ausdruck (Variable). Es führt nur dann einen Code aus, wenn eine Case-Anweisung gefunden wird, deren Ausdruck einen Wert ergibt, der mit dem Wert des Switch-Ausdrucks übereinstimmt. Lassen Sie mich das veranschaulichen, damit Sie es gut verstehen k?nnen.
Nehmen wir an, dass unsere Variable den Wert /views/users/ enth?lt. Wenn der obige Codeteil ausgeführt wird, prüft PHP, ob der Wert /views/users dem Wert der case-Anweisung entspricht, der in unserem Fall /views/users ist. Wenn diese Bedingung also als wahr ausgewertet wird, ruft PHP die Datei /views/users.php auf. Wenn die Bedingung ?falsch“ ergibt, sucht PHP bis zum Ende des Switch-Blocks nach der n?chsten Case-Anweisung.
Hinweis: Jedes Mal, wenn die Case-Anweisung ?True“ ergibt, führt PHP den Code im folgenden Fall weiter aus Aussagen ohne die Notwendigkeit, diese Fallaussagen auszuwerten. In unserem Fall ben?tigt PHP auch view/dep.php. Um dieses ?schlechte Verhalten“ zu vermeiden, müssen Sie nach jeder case-Anweisung eine break-Anweisung hinzufügen.
Lassen Sie uns nun alles in unserer index.php-Datei zusammenfassen:
mkdir?php-routing?&?cd?php-routingtouch?index.php?.htaccess
Wie Sie bereits wissen, speichern wir zun?chst eine Benutzeranfrage in der Variablen $request und verwenden sie dann in der switch-Anweisung. Aus Gründen des sauberen Codes habe ich eine Variable erstellt, die den Namen des Ansichtsverzeichnisses enth?lt.
Sie werden au?erdem zwei weitere Dinge bemerken:
- Sowohl '' als auch '/' werden verwendet, um sowohl site.com als auch site.com/ abzugleichen, wenn sich Benutzer im Stammverzeichnis der App oder Website befinden.
- Es gibt standardm??ig eine Sonderfallanweisung, um alles abzugleichen, was nicht der Fall ist übereinstimmend mit den anderen F?llen, d. h. wenn die Route unbekannt ist.
Fügen wir nun einige Dummy-Daten zu unseren Ansichten hinzu.
Dummy-Daten zu den Ansichtsdateien hinzufügen
Wir haben bereits alle Dateien im Ansichtenverzeichnis erstellt. Gehen wir einfach in dieses Verzeichnis und fügen Sie in jede Datei etwas Inhalt ein.
Fügen Sie einfach in jede Datei etwas Inhalt ein:
RewriteEngine?On RewriteCond?%{REQUEST_FILENAME}?!-f RewriteRule?^(.*)$?index.php
RewriteEngine?On RewriteBase?/folder/ RewriteRule?^index\.php$?-?[L]RewriteCond?%{REQUEST_FILENAME}?!-f RewriteCond?%{REQUEST_FILENAME}?!-d RewriteRule?.?/folder/index.php?[L]
location?/?{ ????????try_files?$uri?$uri/?/index.php}
$request?=?$_SERVER['REQUEST_URI'];
Wie Sie sehen k?nnen , jede Datei enth?lt nur einen Titel und einen Absatz. Fühlen Sie sich frei, beliebige Inhalte hinzuzufügen und den Router zu testen.
Abschlie?ende Gedanken
In diesem Tutorial haben Sie gelernt, wie Sie ein grundlegendes Routingsystem von Grund auf erstellen, einschlie?lich:
- So erstellen Sie eine Datei mit dem Namen index.php im Stammverzeichnis des Projekts. Dies ist der Router für Ihre App.
- So leiten Sie alle eingehenden Anfragen an den Router um. Dies tun Sie in der Konfigurationsdatei Ihres Servers.
- So erstellen Sie das Routing-System mit einer Switch-Anweisung im Router.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein Routing-System für eine PHP-App von Grund auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Die Methode, um die aktuelle Sitzungs -ID in PHP abzurufen, besteht darin, die Funktion seision_id () zu verwenden. Sie müssen jedoch Session_start () aufrufen, um sie erfolgreich zu erhalten. 1. CALL Session_Start (), um die Sitzung zu starten; 2. Verwenden Sie Session_id (), um die Sitzungs -ID zu lesen und eine Zeichenfolge auszugeben, die wie ABC123DEF456GHI789 ?hnelt; 3. Wenn die Rückgabe leer ist, prüfen Sie, ob Session_Start () fehlt, ob der Benutzer zum ersten Mal zugreift oder ob die Sitzung zerst?rt wird. V. Stellen Sie sicher, dass die Sitzung korrekt aktiviert ist und die ID erfolgreich erhalten werden kann.

Um Substrings aus PHP -Zeichenfolgen zu extrahieren, k?nnen Sie die Substr () -Funktion verwenden, die Syntax -Substr (String $ String, int $ start, int $ l?nge = null) ist, und wenn die L?nge nicht angegeben ist, wird sie am Ende abgefangen. Bei der Verarbeitung von Multi-Byte-Zeichen wie Chinesisch sollten Sie die Funktion mb_substr () verwenden, um verstümmelte Code zu vermeiden. Wenn Sie die Zeichenfolge nach einem bestimmten Trennzeichen abfangen müssen, k?nnen Sie exploit () oder substr () zum Implementieren verwenden, z. B. das Extrahieren von Dateinamenverl?ngerungen oder Dom?nennamen.

UnittestinginphpinvolvesverifikationIndividualCodeUnits ?hnliche Funktionen-SetupphpunitviaComposer, CreateTeTeTD-Verzeichnis und Konfigurationsthearrange-Assertpat, writestcasesFoughingthearrarroadandhpunit.xml.2), writestcasesflowingthearrrange

In PHP besteht die h?ufigste Methode darin, die Zeichenfolge mithilfe der Funktion exploit () in ein Array aufzuteilen. Diese Funktion unterteilt die Zeichenfolge in mehrere Teile durch den angegebenen Trennzeichen und gibt ein Array zurück. Die Syntax ist Exploit (Separator, String, Grenze), wobei der Trennzeichen der Trennzeichen ist, die Zeichenfolge ist die ursprüngliche Zeichenfolge und die Grenze ist ein optionaler Parameter, um die maximale Anzahl von Segmenten zu steuern. Zum Beispiel $ str = "Apple, Banane, Orange"; $ arr = explode (",", $ str); Das Ergebnis ist ["Apple", "Bana

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

STD :: CHRONO wird in C verwendet, um die Zeit zu verarbeiten, einschlie?lich des Erhaltens der aktuellen Zeit, der Messung der Ausführungszeit, der Betriebszeit und -dauer und der Formatierungsanalysezeit. 1. Verwenden Sie std :: chrono :: system_clock :: Now (), um die aktuelle Zeit zu erhalten, die in eine lesbare Zeichenfolge konvertiert werden kann, aber die Systemuhr ist jedoch m?glicherweise nicht eint?nig. 2. Verwenden Sie STD :: Chrono :: Steady_clock, um die Ausführungszeit zu messen, um die Monotonie zu gew?hrleisten, und umwandeln Sie sie durch Duration_cast in Millisekunden, Sekunden und andere Einheiten; 3. Zeitpunkt (Time_Point) und Dauer (Dauer) k?nnen interoperabel sein, aber die Aufmerksamkeit der Einheitenkompatibilit?t und der Uhr -Epoche (Epoche) sollte beachtet werden.

Um eine Sitzungsvariable an eine andere Seite zu übergeben, besteht der Schlüssel darin, die Sitzung korrekt zu starten und den gleichen $ _Session -Schlüsselnamen zu verwenden. 1. Bevor Sie Sitzungsvariablen für jede Seite verwenden, muss sie als Session_start () bezeichnet und vor dem Skript platziert werden. 2. Setzen Sie Sitzungsvariablen wie $ _Session ['Benutzername'] = 'Johndoe' auf der ersten Seite; 3. Nachdem Sie Session_start () auf einer anderen Seite aufgerufen haben, greifen Sie auf die Variablen über denselben Schlüsselnamen zu. 4. Stellen Sie sicher, dass Session_Start () auf jeder Seite aufgerufen wird, vermeiden Sie im Voraus, Inhalte auszugeben, und überprüfen Sie, ob der Sitzungsspeicher auf dem Server beschreibbar ist. 5. Verwenden Sie SES

ToaccessesvironmentvariableSinphp, useGetEnv () orthe _envSuperglobal.1.getenv ('var_name') ruftaspecificVariable.2. $ _ EN V ['var_name'] AccessesVariablesifvariables_OrderInphp.iniincludes "e" .setvariablesviacliwithvar = ValuePhpScript.php, Inapach
