В текущей версии фреймворка маршрутизация запросов в бекенд не конфигурируется и подчиняется жёстким правилам (которые тем не менее могут быть переопределены внутри приложения).
Бекенд всех приложений находится в адресном пространстве http://{ДОМЕННОЕ_ИМЯ}/{ПУТЬ_К_ФРЕЙМВОРКУ}/webasyst/*. Бекенд каждого приложения находится в адресном пространстве
http://{ДОМЕННОЕ_ИМЯ}/{ПУТЬ_К_ФРЕЙМВОРКУ}/webasyst/{APP_ID}/*, где APP_ID — это идентификатор приложения.
Соответствие между URL запроса и классом и методом, вызываемым для обработки запроса, определяет класс — фронт-контроллер. По умолчанию (если в приложении не определен свой
индивидуальный фронт-контроллер) используется системный класс waFrontController, который работает по описанным ниже правилам.
Страницы приложения доступны по адресу вида /webasyst/{APP_ID}/[?module=MODULE][&action=ACTION][&ДОПОЛНИТЕЛЬНЫЕ_ПАРАМЕТРЫ]. Системный фронт-контроллер
waFrontController запускает конкретный модуль и экшен приложения, основываясь на значениях параметров module и action, полученных из GET-запроса. Оба параметра (module и action)
являются необязательными, и в случае их отсутствия применяются правила выбора класса и метода по умолчанию. Значение по умолчанию для параметра module —
backend. Системный
фронт-контроллер waFrontController ищет для исполнения класс и метод в соответствии с правилами, описанными в разделе «Правила и рекомендации по именованию».
Порядок поиска методов для обработки запроса на гипотетическом примере приложения с идентификатором myblog:
/webasyst/myblog/
myblogBackendController->execute()myblogBackendActions->defautAction()myblogBackendAction->execute()/webasyst/myblog/?module=mail
myblogMailController->execute()myblogMailActions->defautAction()myblogMailAction->execute()/webasyst/myblog/?module=mail&action=test
myblogMailTestController->execute()myblogMailActions->testAction()myblogMailTestAction->execute()Система ищет класс и метод в указанной последовательности и запускает первый, который нашла.
Если правила маршрутизации в бекенде вашего приложения требуют изменения правил по умолчанию, необходимо переопределить фронт-контроллер для вашего приложения. Для этого
создайте свой класс, унаследованный от класса waFrontController. Логику маршрутизации реализуйте в методе dispatch.
Затем добавьте в файл wa-apps/{APP_ID}/lib/config/factories.php строку вида
'front_controller' => 'НАЗВАНИЕ_ВАШЕГО_КЛАССА'
Например, если ваш фронт-контроллер называется myblogFrontController, то содержимое файла factories.php должно выглядеть следующим образом:
<?php
return array(
...
'front_controller' => 'myblogFrontController',
);