Модули Zend Framework с общими ресурсами

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

application --- /forms --- /models --- /modules ------/module1/ ---------/models ------/module2/ ---------/models 

Теперь то, что я пытаюсь сделать, это загрузить формы в / application / forms из модулей. Все, что я пробовал, приводит к тому, что эти классы не загружаются.

Я пробовал: 1) Дать Zend попробовать и понять это автоматически. 2) Указание всех путей в основной начальной загрузке для пути приложения, а также модулей. То есть,

 protected function _initAutoload() { $front = $this->bootstrap("frontController")->frontController; $modules = $front->getControllerDirectory(); $default = $front->getDefaultModule(); $moduleloader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Application', 'basePath' => APPLICATION_PATH )); foreach (array_keys($modules) as $module) { $moduleloader = new Zend_Application_Module_Autoloader(array( 'namespace' => ucfirst(strtolower($module)), 'basePath' => $front->getModuleDirectory($module)) ); } } 

3) Размахивая головой на моем столе много раз.

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

Любые предложения приветствуются. Благодаря!

Related of "Модули Zend Framework с общими ресурсами"

Попробуй это:

 protected function _initAutoload() { $autoloader = new Zend_Application_Autoloader_Resource(array( 'namespace' => 'Application', 'basePath' => APPLICATION_PATH, 'resourceTypes' => array( 'form' => array( 'path' => 'forms/', 'namespace' => 'Form' ) ) )); return $autoloader; } 

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

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

  • APPLICATION_PATH указывает на каталог / application в вашем приложении.
  • Классы форм называются Application_Form_Something
  • Именами этих классов являются Something.php (с учетом регистра)

например, если у вас есть контактная форма, вы можете вызвать класс Application_Form_Contact и это будет жить в application/forms/Contact.php .

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