Útválasztás elnevezett paraméterekkel PHP-ben
Nézzünk meg egy olyan reguláris kifejezést, ami URL-eket dolgoz fel:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Ebben az esetben az történik, hogy a paraméterünk egy zárójelcsoportba (capturing group) kerül. Majd a paraméter értékét a sorszáma alapján hívjuk elő a zárójelcsoportból:
<?php
$slug = $params[1];
?>
Ez valójában nem túl szép, különösen ha több paraméter is lesz. Egy jobb ötlet lenne elnevezett paramétereket használni a sorszámok helyett. Ehhez használjunk elnevezett zárójelcsoportokat a reguláris kifejezésünkben:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Ebben az esetben a paraméter értékét a neve alapján tudjuk megkapni:
<?php
$slug = $params['slug'];
?>
Alakítsa át a motorja útvonalaiban (route) a paramétereket elnevezettekre.