2010-03-12 2 views
0

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

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,/по умолчанию/и/админ,

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

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

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

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

Спасибо.

ответ

3

Каждый из ваших модулей должен иметь модульный бутстрап.

<?php 
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 
} 

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

ОБНОВЛЕНИЕ В ответ на комментарий:

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

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

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

+0

Я сделал это и использовал их, но все бутстрапы запускаются, когда приложение загружается? – Sjwdavies

+0

Я добавил еще один кусок кода в свой ответ, давая дополнительную информацию о том, как подготовить ваши модули к загрузке. Чтобы ответить на ваш вопрос: Да, все бутстрапы должны срабатывать, если у вас установлены ваши модули правильно. –

0

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

0

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

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

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

$form = new Admin_Form_TheForm(); 
+0

большой ~ я понял, что вы имели в виду! спасибо. – haohan

+0

Лучше, чтобы ZF сделал это для вас в модуле bootstrap в соответствии с ответом Фрэнсиса. –

Смежные вопросы