เราเตอร์พร้อมพารามิเตอร์ที่มีชื่อใน PHP

ลองพิจารณานิพจน์ทั่วไปหนึ่งที่ประมวลผล URL:

index.php<?php
  if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
    $page = include 'view/page/show.php';
  }
?>

ในกรณีนี้ มันกลายเป็นว่าพารามิเตอร์ของเรา เข้าสู่การจับกลุ่ม (กลุ่มใน regex) จากนั้นเราดึงค่า ของพารามิเตอร์ออกมาจากกลุ่มโดยใช้หมายเลขของมัน:

view/page/show.php<?php
  $slug = $params[1];
?>

จริงๆ แล้วนี่ไม่สวยงามนัก โดยเฉพาะ หากมีพารามิเตอร์หลายตัว ความคิดที่ดีกว่า คือการสร้างพารามิเตอร์ที่มีชื่อแทน หมายเลข ในการนี้ เราจะใช้กลุ่มที่มีชื่อ ใน regex ของเรา:

index.php<?php
  if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
    $page = include 'view/page/show.php';
  }
?>

ในกรณีนี้ เราสามารถรับค่าของ พารามิเตอร์โดยใช้ชื่อของมัน:

view/page/show.php<?php
  $slug = $params['slug'];
?>
Задание 1

เปลี่ยนพารามิเตอร์ใน routes ของเอนจินของคุณ ให้เป็นแบบมีชื่อ