# Реализация роутера в своем 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` вы найдете недостающую часть реализации и мои комментарии к ней.

← →
↑