Zend автозагрузчик

Я пытаюсь автоматически загрузить формы, найденные в моем проекте в папке application/forms/*. Php (в данном случае LoginForm.php).

Как настроить автозагрузчик Zends для автоматической загрузки этой формы? Поскольку я не хочу использовать уродливые пространства имен, я включаю запасной вариант в моей начальной загрузке. У меня нет ничего связанного с формами, настроенными в моем application.ini

Спасибо!

2 ответа

Решение

Автозагрузчик по умолчанию загрузит это для вас. Убедитесь, что вы проверили следующее:-

  1. Ваш файл - приложение / формы /Loginform.php
  2. Файл содержит что-то вроде этого:

    class Application_Form_Loginform extends Zend_Form
    {
       //Take special note of the capitalisation - it is important
       // Also note it is Form NOT Forms
        public function init()
        {
            //Your code here
        }
    }
    
  3. Назовите свой класс так:

    $form = new Application_Form_Loginform();
    

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

Не уверен, что это ответ на ваш вопрос, так как это немного расплывчато, но попробуйте следующее.

В вашей начальной загрузке:

protected function _initAppAutoload()
{
    $moduleLoad = new Zend_Application_Module_Autoloader(array(
       'namespace' => '',
       'basePath'   => APPLICATION_PATH
    ));
}

Очевидно, что тогда класс Form_LoginForm() будет существовать в application/forms/LoginForm.php

Другие вопросы по тегам