Định tuyến với tham số được đặt tên trên PHP
Hãy xem xét một trong các biểu thức chính quy xử lý URL:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Trong trường hợp này, tham số của chúng ta rơi vào nhóm bắt giữ. Sau đó, chúng ta trích xuất giá trị tham số từ nhóm bắt giữ theo số của nó:
<?php
$slug = $params[1];
?>
Điều này thực sự không đẹp lắm, đặc biệt nếu sẽ có nhiều tham số. Ý tưởng tốt hơn sẽ là tạo các tham số có tên thay vì số. Để làm điều này, hãy sử dụng các nhóm bắt giữ được đặt tên trong biểu thức chính quy của chúng ta:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Trong trường hợp như vậy, chúng ta có thể lấy giá trị tham số theo tên của nó:
<?php
$slug = $params['slug'];
?>
Hãy chuyển đổi các tham số trong các route của engine bạn thành các tham số được đặt tên.