Einführung
Inspiriert vom Laravel-Router bauen wir unseren eigenen PHP-Router für die Verwaltung unserer Endpunkte für unsere nächste PHP-Projekt.
Einrichten
Legen wir ein neues Verzeichnis für unser Demoprojekt an und erstellen ein paar Dateien, die wir verwenden werden, z.B. index.php
& router.php
.
Grundlegende Fluss wäre wie, in unserem index.php, werden wir unsere Routen und Endpunkte einrichten & einfach die Daten in den Rückrufe übergeben.
In unserem router.php
, fügen Sie den folgenden Code ein.
<?php /** * Holds the registered routes * * @var array $routes */ $routes = []; /** * Register a new route * * @param $action string * @param \Closure $callback Called when current URL matches provided action */ function route($action, Closure $callback) { global $routes; $action = trim($action, '/'); $routes[$action] = $callback; } /** * Dispatch the router * * @param $action string */ function dispatch($action) { global $routes; $action = trim($action, '/'); $callback = $routes[$action]; echo call_user_func($callback); }
Wie Sie sehen können, gibt es hier zwei Hauptfunktionen, eine davon ist route(), die eine Aktion und einen Rückruf annimmt. Diese route()-Methode bestimmt die Aktion und gibt den angegebenen Callback zurück. Die andere Funktion ist dispatch() und akzeptiert nur eine Aktion.
Jetzt innerhalb unserer index.php
, können wir einfach wie aufrufen.
<?php require_once "router.php"; route('/', function () { return "Hello World"; }); route('/about', function () { return "Hello form the about route"; }); $action = $_SERVER['REQUEST_URI']; dispatch($action);
Lesen Sie auch: Erstellen eines PHP-Routers mit benannten URL-Segmenten