Maršrutizavimas su pavadintais parametrais PHP
Panagrinėkime vieną iš reguliariųjų išraiškų, apdorojančių URL:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Šiuo atveju pasirodo, kad mūsų parametras pateka į kišenę. Tada mes ištraukiame parametro reikšmę iš kišenės pagal jos numerį:
<?php
$slug = $params[1];
?>
Tiesą sakant, tai nėra labai gražu, ypač jei parametrų bus keli. Geresne idėja būtų padaryti parametrus su pavadinimais vietoj numerių. Tam panaudosime pavadintas kišenes mūsų reguliariojoje išraiškoje:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Tokiu atveju mes galėsime gauti parametro reikšmę pagal jo pavadinimą:
<?php
$slug = $params['slug'];
?>
Pakeiskite parametrus savo variklio maršrutuose į pavadintus.