Routing dengan Parameter Bernama di PHP
Mari kita pertimbangkan salah satu ekspresi reguler yang memproses URL:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Dalam kasus ini, parameter kita masuk ke dalam capture group. Kemudian kita mengambil nilai parameter dari capture group berdasarkan nomornya:
<?php
$slug = $params[1];
?>
Sebenarnya ini tidak terlalu bagus, terutama jika parameternya ada beberapa. Ide yang lebih baik adalah membuat parameter dengan nama, bukan nomor. Untuk ini, kita akan menggunakan capture group bernama dalam regex kita:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Dalam kasus ini, kita bisa mendapatkan nilai parameter berdasarkan namanya:
<?php
$slug = $params['slug'];
?>
Ubah parameter di route mesin Anda menjadi parameter bernama.