„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Erstellen eines besseren Routers: Umgang mit VERSTECKTEN Eingaben und DELETE-Anfragen

Erstellen eines besseren Routers: Umgang mit VERSTECKTEN Eingaben und DELETE-Anfragen

Veröffentlicht am 31.07.2024
Durchsuche:254

Creating a Better Router : Handling HIDDEN Inputs and DELETE request

Vor ein paar Tagen habe ich gelernt, einen einfachen Router zu bauen, der URLs Controllern zuordnet. Jetzt muss ich es verbessern, um einen besseren Router mit erweiterter Funktionalität zu bauen. Um einen besseren Router zu erstellen, der mit versteckten Eingaben arbeitet, löschen Sie zunächst die Basisdatei router.php aus dem Projekt und erstellen Sie eine neue. Lasst uns beginnen.

Einführung in das Routing

Wir müssen einen besseren Router bauen, der URLs effizient bestimmten Controllern oder Aktionen zuordnet, sodass unsere Anwendung Anfragen verarbeiten und an die entsprechenden Handler weiterleiten kann.
Die Fähigkeit des besseren Routers, mit versteckten Eingaben zu arbeiten, ermöglicht das sichere Löschen von Notizen, indem die Notiz-ID an den Controller übergeben wird, ohne sie in der URL offenzulegen, wodurch Benutzereingriffe verhindert werden.

Erstellen Sie eine Router-Datei

Um eine Router-Datei zu erstellen, müssen wir die Router-Klasse mit einem Namespace initialisieren, in diesem Fall Core.

Öffentliche Funktionen (gemeinsame Parameter)

Wenn die Router-Klasse erstellt wird, müssen wir darin öffentliche Funktionen definieren und alle haben dieselben Parameter wie „Get“, „Post“, „Delete“, „Patch“ und „Put“ als wesentliche Routen, die unserer Website helfen, zu bestimmen, was zu tun ist, wenn jemand eine bestimmte besucht Seite. Diese Funktionen verfügen über dieselben Parameter und können daher dieselben Aktionen ausführen.

public function get($uri, $controller) {
 $this->add('GET', $uri, $controller); }
public function post($uri, $controller) {
 $this->add('POST', $uri, $controller); }
public function delete($uri, $controller) { 
$this->add('DELETE', $uri, $controller); }
public function patch($uri, $controller) { 
$this->add('PATCH', $uri, $controller); }
public function put($uri, $controller) { $this->add('PUT', $uri, $controller); }

Methode hinzufügen

Da alle öffentlichen Funktionen dieselben Parameter haben, verwenden wir die Add-Methode und geben ihr dieselben Parameter, und zwar nur, um dies in anderen Funktionen aufzurufen. Es wird verwendet, um der Routing-Karte eine neue Route hinzuzufügen, wobei drei Parameter verwendet werden: die Anforderungsmethode, das abzugleichende URI-Muster und die Controller-Datei zur Verarbeitung der Anforderung.

public function add($method, $uri, $controller) { 
  $this->routes[] = [ 
    'uri' => $uri, 
    'controller' => $controller, 
    'method' => $method 
  ]; 
}

Routenmethode

Hier definieren wir die Route-Methode, um die Antwort unserer Anwendung auf eine bestimmte URL zu bestimmen und sie dem entsprechenden Controller zuzuordnen, der die Anfrage verarbeitet.

public function route($uri, $method) { 
  foreach ($this->routes as $route) { 
    if ($route['uri'] === $uri && $route['method'] === strtoupper($method)) { 
      return require base_path($route['controller']); 
    } 
  } 
  $this->abort(); 
}

strtoupper-Funktion

In der Route-Methode verwenden wir die Funktion strtoupper, um eine Zeichenfolge in Großbuchstaben umzuwandeln und so eine Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung sicherzustellen.

strtoupper($method)

Geschützte Funktion (Abbruch)

In der Datei router.php haben wir die Abbruchmethode als Sicherheitsnetz definiert, die eine Fehlerseite anzeigt, wenn unsere Website nicht die richtige Route finden kann.

protected function abort($code = 404) { 
  http_response_code($code); 
  require base_path("views/{$code}.php"); 
  die(); 
}

Routendefinitionen

Zuletzt müssen Sie die Routing-Konfiguration in der Datei „routes.php“ definieren und URLs den entsprechenden Controller-Aktionen zuordnen.

$router->get('/', 'controllers/index.php'); 
$router->get('/about', 'controllers/about.php'); 
$router->get('/contact', 'controllers/contact.php'); 
$router->get('/notes', 'controllers/notes/index.php'); 
$router->get('/note', 'controllers/notes/show.php'); 
$router->get('/notes/create', 'controllers/notes/create.php');

Die Get-Methode gibt die Anforderungsmethode (GET) und das URL-Muster an und ordnet es einer Controller-Datei zu.

Abschluss

Zusammenfassend lässt sich sagen, dass wir einen besseren Router entwickelt haben, der URLs effizient bestimmten Controller-Methoden zuordnet, was einen strukturierteren und wartbareren Ansatz für die Bearbeitung von Anfragen ermöglicht und die Gesamtleistung und Skalierbarkeit unserer Website verbessert.

Ich hoffe, dass Sie es klar verstanden haben.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/ghulam_mujtaba_247/creating-a-better-router-handling-hidden-inputs-and-delete-request-ei7?1 Bei Verstößen wenden Sie sich bitte an Study_golang@163 .com, um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3