# Разработка роутера в своем MVC фреймворке

Теперь вам нужно разработать роутер. Он представляет собой класс, который будет брать массив роутов, брать запрошенный URL, и определять, какой из роутов соответствует данному урл. После нахождения соответствующего роута наш класс должен получить части URL, соответствующие параметрам роута.

Пусть своим результатом наш роутер возвращает объект класса `Track`, содержащего имя контроллера, который должен быть вызван на данный запрос, имя действия и параметры из URL.

Пусть наш класс `Track` имеет свойства `controller`, `action` и `params`, доступные только для чтения:

`<?php namespace Core; class Track { private $controller; private $action; private $params; public function __construct($controller, $action, $params) { $this->controller = $controller; $this->action = $action; $this->params = $params; } public function __get($property) { return $this->$property; } } ?>`

## Пример

Для примера, пусть в адресной строке вбито `/test/1/2/`. Пусть у нас есть роут, соответствующий этому адресу:

`<?php new Route('/test/:var1/:var2/', 'test', 'index'); ?>`

Это значит, что имя контроллера будет `test`, имя действия - `index`, а массив параметров будет следующий:

`<?php ['var1' => 1, 'var2' => 2] ?>`

Цель данного урока - написать класс `Router`, возвращающий объект класса `Track`. Остальное нас пока не касается. Давайте приступим к написанию этого класса.

## Практические задачи

Скопируйте код моего класса `Track` и разместите его в файле `/core/Track.php`.

← →
↑