Роутинг

Роутинг обеспечивает механизм определения модуля или дополнения отвечающего за обработку запросов к приложению.

Для примера рассмотрим каким образом становится доступен раздел "Регистрация":

  1. Пользователь переходит по ссылке /user/register и тем самым отправляет запрос
  2. Выполняется запуск frontend-приложения и инициализация роутинга
  3. Компонент роутинга регистрирует все роуты модулей и дополнений
  4. Полученный список обрабатывается на предмет совпадения по URL
  5. В результате компонент возвращает модуль users и метод register, который необходимо вызвать
  6. Приложение вызывает метод frontend-контроллера модуля users (/modules/users/users.class.php)
  7. Метод формирует ответ в формате строки (HTML или JSON) и отдает его приложению
  8. Приложение отправляет его пользователю

Роуты модулей

Роуты модулей следует объявлять в файле routes.php в директории модуля, пример объявления роута в файле:

<?php
return [
    'users-auth' => [
        'pattern'  => 'user/{action}',
        'callback' => 'users/$1/',
        'priority' => 180,
    ],
];

В примере мы обработали URL вида /user/{любое слово} и указали для них модуль users, а в качестве названия метода указали $1, вместо которого будет подставлено слово из URL {action}. Именно такой роут и обрабатывает запросы на страницу /user/register, о которой шла речь выше.

Роуты дополнений

Подробнее о порядке объявления роутов дополнений вы найдете в разделе "Дополнения"