НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗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 вы найдете недостающую часть реализации и мои комментарии к ней.

Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить