Повторяющиеся имена контроллеров из разных плагинов

У меня есть вопрос, касающийся системы загрузки файлов из 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)

Другие вопросы по тегам