Проблема: В документации к контроллерам написано, что контроллеры могут располагаться либо в модулях, либо в компонентах. А почему я не могу объявить контроллер вне модуля? У меня, как и у всех разработчиков настроен автозагрузчик на проекте, и я бы хотел сам определять, где должны лежать контроллеры.
Однако, вышеописанный пример как раз таки реализация ситуации, когда контроллер лежит Вне модуля. На первый взгляд - все работает. Но если попробовать добавить в Неймспейс контроллера еще один уровень, например
namespace Vendor\MyControllers;
и передать его также в роут, то мы словит такую ошибку
[Bitrix\Main\LoaderException]
There is no `Vendor\MyControllers\TestController` class, module `vendor.mycontrollers` is unavailable (0)
Пофиксите пожалуйста, мега неприятное и неочевидное поведение.
Не хотелось бы из-за этого тащить в проекты доп. зависимость - symfony/router
Чтобы не нарушать обратную совместимость и подгрузкой контроллеров из ajax, предлагаю добавить еще одного Наследника Routing\Controller, чтобы можно было для его дочерних классов не проверять подключение модуля.
namespace Vendor\MyControllers;