Помещение моделей в каталог библиотеки в Zend Framework

Я хочу разместить модели вне каталога модулей в Zend Framework. Если быть точным, в папке / library

library/ models/ actors/ ActorsMapper.php Actor.php books/ BooksMapper.php Book.php 

ВМЕСТО

 application/ modules/ models/ actors/ ActorsMapper.php Actor.php books/ BooksMapper.php Book.php 

Это делается для того, чтобы мне не приходилось создавать отдельную модель для каждого модуля, который я создаю. Какие конфигурации мне придется изменить? Если вам нужна дополнительная информация, пожалуйста, спросите.

Спасибо 🙂

Первый ответ работает, но я дам вам другой ответ, если вы хотите зарегистрировать автозагрузку в бутстрапе.

1) поместите папку «models» в библиотеку со всеми файлами Table.php.

Каждая модель / класс должна иметь:

 class Model_Table extends Zend_Db_Table_Abstract{ ... } 

2) В bootstrap.php поставили:

 protected function _initAutoLoad() { // Add autoloader empty namespace $autoLoader = Zend_Loader_Autoloader::getInstance(); $resourceLoader = new Zend_Loader_Autoloader_Resource( array( 'basePath' => APPLICATION_PATH, 'namespace' => '', 'resourceTypes' => array( 'model' => array( 'path' => '../library/models/', 'namespace' => 'Model_' ), ), ) ); return $resourceLoader; } 

Вот и все. Теперь вы можете использовать свои модели в контроллерах следующим образом:

 $model = new Model_Table(); 

Если вы хотите использовать одни и те же модели для всех модулей, вы можете поместить их в приложения / приложения папки приложений

и это прекрасно работает так же, как когда у вас есть сеть без модулей.

Но если вы хотите иметь модели в библиотеке, вы можете поместить папку «models» в свой путь к библиотеке и автозагрузить ее.

  1. Создайте папку «Модели» в библиотеке со всеми файлами Table.php.
  2. В configs / application.ini Put:

     autoloaderNamespaces.models = "Models_" 

Затем вы можете использовать пространство имен «Models_» в своем веб-приложении

В контроллере:

  $model = new Models_Table(); 

в любом случае, я рекомендую хранить модели папок в приложении / моделях пути

zend, который начинается с префикса, который зарегистрирован на нем. Если у вас есть библиотека в вашем пути включения, вы можете просто зарегистрировать «Модели», такие как пространство имен по умолчанию на автозагрузчике и назвать свой класс, например Models_Actors_Actor.