เราเตอร์พร้อมพารามิเตอร์ที่มีชื่อใน PHP
ลองพิจารณานิพจน์ทั่วไปหนึ่งที่ประมวลผล URL:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
ในกรณีนี้ มันกลายเป็นว่าพารามิเตอร์ของเรา เข้าสู่การจับกลุ่ม (กลุ่มใน regex) จากนั้นเราดึงค่า ของพารามิเตอร์ออกมาจากกลุ่มโดยใช้หมายเลขของมัน:
<?php
$slug = $params[1];
?>
จริงๆ แล้วนี่ไม่สวยงามนัก โดยเฉพาะ หากมีพารามิเตอร์หลายตัว ความคิดที่ดีกว่า คือการสร้างพารามิเตอร์ที่มีชื่อแทน หมายเลข ในการนี้ เราจะใช้กลุ่มที่มีชื่อ ใน regex ของเรา:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
ในกรณีนี้ เราสามารถรับค่าของ พารามิเตอร์โดยใช้ชื่อของมัน:
<?php
$slug = $params['slug'];
?>
เปลี่ยนพารามิเตอร์ใน routes ของเอนจินของคุณ ให้เป็นแบบมีชื่อ