Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗ppMVDFmRrIm 27 of 35 menu

Рэалізацыя роўтара ў сваім MVC фрэймворку

Давайце цяпер напишам загатоўку класа Router у адпаведнасці з нашымі выклікамі:

<?php namespace Core; class Router { private $routes; public function getTrack($routes, $uri) { // тут будзе код } } ?>

У метадзе getTrack мы павінны вызначыць, які з роўтаў адпавядае дадзенаму $uri. Для гэтага трэба перабраць наш масіў з роўтамі цыклам:

<?php namespace Core; class Router { public function getTrack($routes, $uri) { foreach ($routes as $route) { // праверка $uri і $route } } } ?>

Калі якісьці роўт адпавядае URI, мы павінны атрымаць з гэтага URI значэнні параметраў роўта і вярнуць аб'ект класа Track:

<?php namespace Core; class Router { public function getTrack($routes, $uri) { foreach ($routes as $route) { if (праверка адпаведнасці роўта і URI) { $params = ; // трэба атрымаць параметры з uri return new Track($route->controller, $route->action, $params); } } return new Track('error', 'notFound'); // калі ні адзін роўт не падыйдзе } } ?>

Скапіруйце маю загатоўку класа Router і размясціце яго ў файле /core/Router.php.

Рэалізуйце апісаны клас Router, сваім вынікам які вяртае аб'ект класа Track. Калі будзеце адчуваць цяжкасці (што вельмі верагодна), падгледзьце ў зыходны код фрэймворку, па якому вы вывучалі выкарыстанне MVC. Там у класе Router вы знойдзеце недастаючую частку рэалізацыі і маё каментары да яе.

byenru