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/, мұндағы параметрлер
белгілі бір сандар болсын. Берілген сандардың
қосындысы экранға шығарылуы үшін жасаңыз.