Nimetatud parameetritega marsruutimine PHP-s
Vaatleme ühte regulaaravaldistest, mis töötleb URL-i:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Sel juhul saabub meie parameeter taskusse. Seejärel võtame parameetri väärtuse välja taskust selle numbri järgi:
<?php
$slug = $params[1];
?>
See tegelikult pole eriti ilus, eriti kui parameetreid on mitu. Parem idee oleks teha parameetrid nimedega, mitte numbritega. Selleks kasutame nimetatud taskusi oma regulaaravaldises:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Sel juhul saame parameetri väärtuse kätte selle nime järgi:
<?php
$slug = $params['slug'];
?>
Muutke oma mootori marsruutide parameetrid nimetatuteks.