Zend Framework Автозагрузка в 3-х модулях - PullRequest
0 голосов
/ 12 марта 2010

Я новичок в ZF и пишу в Zend Framework 1.10. Вот моя структура каталогов приложения.

APPLICATION_PATH`
├─configs
 ├─layouts
 └─modules
    ├─admin
    │  ├─controllers
    │  ├─forms
    │  ├─models
    │  └─views
    │      ├─filters
    │      ├─helpers
    │      └─scripts
    │          ├─authentication
    │          ├─cars
    │          └─index
    └─default
        ├─controllers
        ├─forms
        │  └─admin
        ├─models
        │  └─DbTable
        ├─plugins
        └─views
            ├─helpers
            └─scripts
                ├─about
                ├─contact
                ├─error
                ├─index
                ├─insurance
                └─used-cars

У меня есть 3 файла bootstrap.php в APPLICATION_PATH, / default / и / admin,

я использовал AutoLoader для загрузки моделей и форм

// APPLICATION_PATH/Bootstrap.php
$modelLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '', 'basePath' => APPLICATION_PATH . '/modules/default'));

Приведенный выше код автоматически загрузит все модели и формы в modules / default, и теперь у меня проблема с вызовом форм и моделей в / modules / admin / models и / modules / admin / forms в модуле по умолчанию. *

Какие-либо решения для решения этой проблемы? Как мне назвать имя класса в / modules / admin

Спасибо.

Ответы [ 3 ]

3 голосов
/ 09 сентября 2011

каждый из ваших модулей должен иметь загрузочный модуль.

<?php
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
}

модуль начальной загрузки модуля устанавливает автозагрузчики по умолчанию для этого модуля.

ОБНОВЛЕНИЕ ОТВЕТА НА КОММЕНТАРИЙ:

убедитесь, что ваш ini настроен на модули Bootstrap

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""

Затем убедитесь, что у каждого из ваших модулей есть класс начальной загрузки (см. Выше).

0 голосов
/ 12 марта 2010

Все, что вам нужно сделать, это добавить еще один автозагрузчик модуля для загрузки модуля администратора:

$adminLoader = new Zend_Application_Module_Autoloader(array(
    'namespace' => 'Admin', 'basePath' => APPLICATION_PATH . '/modules/admin'));

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

$form = new Admin_Form_TheForm();
0 голосов
/ 12 марта 2010

Попробуйте использовать Zend Tool - он создаст для вас все необходимые пути и файлы и станет хорошим способом начать работу с Zend.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...