Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Папки контроллера и новый автозагрузчик в Zend Framework

Автор вопроса: AlexAОтветов: 2

После введения автозагрузчика я начал портировать существующее приложение ZF. Непосредственной ошибкой было то, что IndexController был расширен BaseController, который теперь не может быть найден, хотя он находится в папке application/controllers с другими контроллерами.

Требует ли парадигма автозагрузчика, чтобы BaseController был переименован в My_BaseController и помещен в папку библиотеки? С другой стороны, так приятно хранить все контроллеры в одной папке с BaseController.

  • Привет, я думаю, вам нужно назвать контроллер BaseController и класс внутри этого файла как Default_BaseController. opHASnoNAME 18.11.2009

phpmodel-view-controllerzend-framework

Ответы

Ответ 1 · рейтинг 5 · smack0007

Автозагрузчик модулей по умолчанию не загружается из папки контроллера. Вы можете либо добавить папку во включенный автозагрузчик модулей, либо создать свой собственный автозагрузчик ресурсов.

См. http://framework.zend.com/manual/en/zend.loader.autoloader-resource.html#zend.loader.autoloader-resource.module для получения информации об автозагрузчике ресурсов/модулей.

Вы можете делать что-то по старинке и просто require_once('BaseController.php');

Ответ 2 · Mez

Я на самом деле не видел, чтобы что-то использовало application/controllers раньше

Как правило, вещи помещались в application/modules/<module>/controllers/, а "универсальные" контроллеры - в модуль default.

Вы можете получить лучший ответ, если приведенное выше неверно, если вы укажете, между какими версиями вы переходите, и как вы пытаетесь вызвать контроллер?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы