Модули позволяют разделить ваше приложение на конкретные проблемы. Часто мои большие приложения будут иметь модуль по умолчанию для пользователей и модуль администратора, который будет содержать все административные функции. Я использую структуру каталогов, рекомендованную в разделе Рекомендуемая структура проекта для приложений Zend Framework MVC -> Структура модуля в документации Zend Framework.
Что касается вашего второго вопроса, ответ - да и нет. Если вы хотите воспользоваться преимуществами функции автозагрузки по умолчанию (загрузка Admin_Form_Settings из каталога admin / forms), вам потребуется загрузчик в каждом модуле. См. Статью Мэтью Вейера О'Финни о Модульных бутстрапах в Zend Framework: что нужно и чего не нужно для получения дополнительной информации. Вы также можете зайти в Google и просмотреть пост Роба Аллена «Модули начальной загрузки в ZF 1.8 и выше».
Отвечая нет на ваш второй вопрос: мне нравится использовать одну технику, которая не требует пустых загрузчиков в каждом модуле, - это поместить все классы вашего приложения в папку lib приложения и имитировать структуру каталогов Zend Framework. Если мое приложение с именем Example, я создам папку с именем Example в моей директории / lib. Моя форма регистрации пользователя будет помещена в / lib / Example / Form и может называться UserRegistration.php. Мой класс будет называться Example_Form_UserRegistration. Для автозагрузки моей формы в файле Bootstrap.php потребуется следующее:
protected function _initAppAutoload() {
$autoloader = Zend_Loader_Autoloader::getInstance();
return $autoloader;
}
Мой application.ini будет содержать строки
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =
autoloaderNamespaces[] = "Example_"
Используя эту технику, вы сможете автоматически загружать любой класс в / lib / Example в любом месте вашего приложения, не помещая пустые загрузочные ловушки в каждый модуль.
ПРИМЕЧАНИЕ. Я пытался разместить ссылки непосредственно на документы и на статью Роба Аллена, но, поскольку я новичок, мне разрешили только одну ссылку. Извиняюсь за то, что прошу вас к элементам Google, которые должны быть ссылками.