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

Вы уже знаете, что в файле `/project/config/routes.php` размещаются роуты, указывающие соответствия между URL и контроллерами с действиями. Роуты представляют собой объекты класса `Route`. Давайте сделаем этот класс в файле `/core/Route.php`:

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

Как вы видите, в этом классе свойства предназначены только для чтения, что достигается использованием магии.

Загляните теперь в файл с роутами. Вы можете увидеть, что там находится массив, который возвращается через `return`. Это значит, что если подключить такой файл через `require`, то результат подключения можно записать в переменную и в этой переменной окажется наш массив:

`<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // ваша реализация автозагрузки }); // Прочитываем массив из файла с роутами в переменную: $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; ?>`

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

Получите массив с роутами в файле `index.php`.

←→
↑