Routning med namngivna parametrar i PHP
Låt oss titta på ett av reguljära uttrycken som bearbetar URL:er:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
I det här fallet blir det så att vår parameter hamnar i en ficka. Sedan hämtar vi värdet på parametern från fickan genom dess nummer:
<?php
$slug = $params[1];
?>
Detta är faktiskt inte särskilt snyggt, speciellt om det finns flera parametrar. En bättre idé vore att använda parametrar med namn istället för nummer. För att göra detta använder vi namngivna fickor i vårt reguljära uttryck:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
I så fall kan vi få värdet på parametern genom dess namn:
<?php
$slug = $params['slug'];
?>
Omvandla parametrarna i dina motorers routar till att vara namngivna.