PHPдеги MVCдеги багыттоочу параметрлер
Акыркы сабакта биздин багыттоолор туруктуу даректерге ээ болчу. Чынында багыттоо механизми андан татаалырак - URI баракчасынын бир бөлүгү аталыш параметрлерине түшүп, андан кийин контроллерде кол жеткиликтүү болушу мүмкүн.
Мисалы, биздин даректер төмөнкүдөй көрүнсүн: /test/param1/param2/,
бул жерде param1 жана param2 - өзгөчө саптар. Бул учурда ушул түрдөгү даректер бир контроллер аракети тарабынан иштетилишин каалайбыз.
Бул үчүн параметрдин атын ойлоп таап, анын алдына эки чекит коюу керек, төмөнкүдөй:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
Биздин учурда /test/параметр1/параметр2/ түрүндөгү бардык сурамдар
act аракетине түшөт. Бул
учурда бул аракеттин биринчи параметрине параметрлер менен ассоциативдүү массив түшөт:
биринчи параметрдин ордунда турган текст,
массивдин 'var1' ачкычы менен элементине түшөт,
ал эми экинчи параметрдин тексти - 'var2' ачкычына.
Мисалы, дарек тилкесинде төмөнкү киргизилди деп коёлу: /test/eee/bbb/. Келгиле
аракеттин биринчи параметри эмнени камтый турганын карап көрөлү:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
NumController контроллерин жасаңыз,
анын ичинде - sum аракети. Бул
аракет төмөнкү түрдөгү даректерди иштетсин:
/nums/:n1/:n2/:n3/, бул жерде параметрлер
кандайдыр бир сандар болсун. Берилген сандардын суммасы
экранга чыгарылышы үчүн жасаңыз.