После введения автозагрузчика я начал портировать существующее приложение ZF. Непосредственной ошибкой было то, что IndexController был расширен BaseController, который теперь не может быть найден, хотя он находится в папке application/controllers с другими контроллерами.
Требует ли парадигма автозагрузчика, чтобы BaseController был переименован в My_BaseController и помещен в папку библиотеки? С другой стороны, так приятно хранить все контроллеры в одной папке с BaseController.
Ответ 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.
Вы можете получить лучший ответ, если приведенное выше неверно, если вы укажете, между какими версиями вы переходите, и как вы пытаетесь вызвать контроллер?