Роутинг
Роутинг обеспечивает механизм определения модуля или дополнения отвечающего за обработку запросов к приложению.
Для примера рассмотрим каким образом становится доступен раздел "Регистрация":
- Пользователь переходит по ссылке /user/register и тем самым отправляет запрос
- Выполняется запуск frontend-приложения и инициализация роутинга
- Компонент роутинга регистрирует все роуты модулей и дополнений
- Полученный список обрабатывается на предмет совпадения по URL
- В результате компонент возвращает модуль users и метод register, который необходимо вызвать
- Приложение вызывает метод frontend-контроллера модуля users (/modules/users/users.class.php)
- Метод формирует ответ в формате строки (HTML или JSON) и отдает его приложению
- Приложение отправляет его пользователю
Роуты модулей
Роуты модулей следует объявлять в файле routes.php в директории модуля, пример объявления роута в файле:
<?php
return [
'users-auth' => [
'pattern' => 'user/{action}',
'callback' => 'users/$1/',
'priority' => 180,
],
];
В примере мы обработали URL вида /user/{любое слово} и указали для них модуль users,
а в качестве названия метода указали $1, вместо которого будет подставлено слово из URL {action}
.
Именно такой роут и обрабатывает запросы на страницу /user/register, о которой шла речь выше.
Роуты дополнений
Подробнее о порядке объявления роутов дополнений вы найдете в разделе "Дополнения"