Zend Framework Form не найден - PullRequest
0 голосов
/ 28 июня 2011

В моем public/index.php я определяю путь включения:

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    '/var/www/php_include/zend/1.11.7/library',
    '/var/www/php_include/application',
    get_include_path(),
)));

В моем IndexController я хочу сослаться на мою форму с помощью

new Form_Login();

Но там я получаю сообщение об ошибке:

Неустранимая ошибка: класс LoginForm не найден в /var/www/php_include/application/controllers/LoginController.php в строке 31

Форма под application/forms/Login.php:

class Form_Login extends Zend_Form
{
    public function init()
    {

get_include_path() перед использованием new LoginForm() бросков:

/ вар / WWW / php_include / приложение /../ библиотека: /var/www/php_include/zend/1.11.7/lib окон- чательно: / вар / WWW / php_include / приложения: / вар / WWW / php_include / применение / формы:.: / v ар / WWW / php_include: / USR / доли / груша / PEAR

Кто-нибудь знает, как заставить это работать?

Ответы [ 3 ]

2 голосов
/ 28 июня 2011

Автозагрузчик не найдет его у меня сфинкс. Просто добавьте ваш forms/ путь к вашему включаемому пути.

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    '/var/www/php_include/zend/1.11.7/library',
    '/var/www/php_include/application',
    '/var/www/php_include/application/forms',
    get_include_path(),
)));

Теперь переименуйте ваш файл в LoginForm.php, а имя класса - в LoginForm

Тогда используйте

new LoginForm(); 

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

Обновление

Это часть моего класса начальной загрузки:

function _initAutoloader() {
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->setFallbackAutoloader(true);
    return $autoloader;
}
1 голос
/ 28 июня 2011

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

Но вы должны изменить его на Form_Login и forms/Login.php

0 голосов
/ 28 июня 2011

попробуй

new Default_Form_LoginForm();
...