Routing mit benannten Parametern in PHP
Betrachten wir einen der regulären Ausdrücke, die URLs verarbeiten:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
In diesem Fall gelangt unser Parameter in die Erfassungsgruppe. Dann extrahieren wir den Wert des Parameters aus der Erfassungsgruppe anhand seiner Nummer:
<?php
$slug = $params[1];
?>
Das ist in der Tat nicht sehr schön, besonders wenn es mehrere Parameter gibt. Eine bessere Idee wäre, Parameter mit Namen anstelle von Nummern zu verwenden. Dazu nutzen wir benannte Erfassungsgruppen in unserem regulären Ausdruck:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
In diesem Fall können wir den Wert des Parameters anhand seines Namens abrufen:
<?php
$slug = $params['slug'];
?>
Ändern Sie die Parameter in den Routen Ihrer Engine auf benannte um.