У меня много проблем с выяснением того, как мы можем иметь модульную структуру каталогов, с возможностью загрузки ресурсов, которые должны быть доступны для разных модулей. То есть,
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) Размахивая головой на моем столе много раз.
.. и да, я понимаю, что мне не нужен этот цикл для модулей, поскольку у меня есть пустые загрузочные файлы в каждом каталоге модулей.
Любые предложения приветствуются. Благодаря!
Попробуй это:
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_Form_Contact
и это будет жить в application/forms/Contact.php
.
Если у вас все еще есть проблемы, укажите пример класса формы, который не найден, а также как и где вы его вызываете.