Повторяющиеся имена контроллеров из разных плагинов
У меня есть вопрос, касающийся системы загрузки файлов из Cakephp2.3.
У меня есть два плагина - давайте назовем их "Контакты" и "Менеджеры", загруженные так:
CakePlugin::load('Contacts');
CakePlugin::load('Managers');
У каждого из них есть контроллер с именем "DashboardController.php" с действием index().
Когда я пытаюсь получить доступ к странице панели "Контакты", иногда я вижу следующую ошибку:
Error: Class "ManagersAppController" not found
хотя URL выглядит так:
http://mysite.com/contacts/dashboard
Я читал, что Cakephp2.3 не поддерживает пространства имен, и это может произойти, потому что у меня есть два класса php (DashboardController.php) с одинаковыми именами. В то же время я знаю, что Cake должен сначала сопоставить имя плагина, чтобы он мог обрабатывать повторяющиеся имена файлов.
У вас есть идея, почему я вижу эту случайную ошибку?
Спасибо за вашу помощь.
1 ответ
Я только что нашел ответ от ребят разработанного CakePHP. Действительно, у вас не может быть двух контроллеров или моделей с одинаковым именем, даже если они расположены в разных плагинах.
Это происходит только в CakePHP2.x, и я цитирую:
Это известное ограничение Cake2.x и подхода с отложенной загрузкой с использованием App:: использовании ().
Вы можете увидеть мой вопрос и его ответ здесь: http://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/3558-loading-file-from-a-different-plugin
Решение состоит в том, чтобы переименовать контроллеры / модели с конфликтующими именами и / или назвать все контроллеры и модели из плагина, используя имя плагина (например, DashboardController.php станет ContactsDashboardController.php)