PHPでの名前付きパラメータを用いたルーティング

URLを処理する正規表現の一つを 見てみましょう:

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

この場合、パラメータは キャプチャグループに入ります。 その後、番号によってパラメータの値を キャプチャグループから取り出します:

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

これは実際にはあまり美しくありません。 特にパラメータが複数ある場合にそうです。 番号ではなく名前を持つパラメータに する方が良いアイデアです。 そのために、正規表現で名前付き キャプチャグループを使用しましょう:

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

あなたのエンジンのルートのパラメータを 名前付きのものに変更してください。