Zend Framework: формы в модулях - PullRequest
6 голосов
/ 21 мая 2010

Что я хочу сделать:

Создайте несколько модулей с папкой форм внутри них.

Что я сделал:

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

Например, модуль администратора со следующим загрузчиком:

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{

    protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Admin_',
            'basePath'  => dirname(__FILE__),
        ));
        return $autoloader;
    }

}

Мой вопрос:

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

Приветствия
Chris

Ответы [ 2 ]

11 голосов
/ 22 мая 2010

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

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap {}

- это все, что вам нужно.

Затем поместите ваши формы в /application/modules/admin/forms/.

Admin_Form_Myform extends Zend_Form {...}

Для ваших пользовательских ресурсов настройте resourceAutoloader:

   class Admin_Bootstrap extends Zend_Application_Module_Bootstrap 
   {
        public function _initAuloload() 
        {
             $resourceLoader = $this->_resourceAuloloader;
             // var_dump($resourceLoader);
        }
   }
5 голосов
/ 18 октября 2011

Не забудьте добавить также в свой apllication.ini

resources.frontController.moduleDirectory = APPLICATION_PATH "/ modules"

resources.modules = ""

...