PHP-де атаулы параметрлері бар маршруттау
URL-ді өңдейтін тұрақты өрнектердің бірін қарастырайық:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Бұл жағдайда біздің параметріміз түйіншекке түседі. Содан кейін біз параметрдің мәнін оның нөмірі бойынша түйіншектен аламыз:
<?php
$slug = $params[1];
?>
Бұл іс жүзінде өте әдемі емес, әсіресе егер бірнеше параметр болса. Сәл жөндеу идеясы - бұл нөмірлердің орнына параметрлерге атау беру. Ол үшін біз өз тұрақты өрнектерімізде атаулы түйіншектерді қолданамыз:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Осындай жағдайда біз параметрдің мәнін оның аты бойынша ала аламыз:
<?php
$slug = $params['slug'];
?>
Өз қозғалтқышыңыздың маршруттарындағы параметрлерді атаулы параметрлерге өзгертіңіз.