Где поместить My_Validate_PasswordConfirmation в Zend Framework? - PullRequest
2 голосов
/ 18 июня 2009

Я использую валидатор подтверждения пароля из официального документа Zend Framwork здесь:
http://framework.zend.com/manual/en/zend.form.elements.html

В Bootstrap.php я установил пространство имен как
'namespace' => 'My _'

Файл находится по адресу Приложение / Validate / PasswordConfirmation.php

Однако в моем Zend_Form возникает «Фатальная ошибка: класс« My_Validate_PasswordConfirmation »not found»

Что я должен сделать, чтобы решить проблему?

1 Ответ

4 голосов
/ 18 июня 2009

Я разработал и внедрил Zend_Filter_Input, включая его функцию пространства имен.

У вас есть обратное понимание того, как работает эта функция. Он предназначен для того, чтобы вы могли использовать короткое имя для класса валидатора, когда фактическое имя этого класса длиннее. Вы, очевидно, делаете обратное, пытаясь назвать класс с более длинным именем, чем оно есть на самом деле.

Чтобы исправить это, я рекомендую следующие шаги:

  • Назовите класс My_Validate_PasswordConfirmation
  • Поместите его в `application / My / Validate / PasswordConfirmation.php
  • Добавьте namespace=>'My_Validate' к вашим Zend_Filter_Input опциям.
  • Вызовите валидатор как просто «PasswordConfirmation».

обновление: я потратил некоторое время на это. Кажется, моя первая идея была вне цели. Проблема пространства имен не имеет ничего общего с функцией Zend_Filter_Input, она связана с функцией начальной загрузки Zend_Application. Похоже, вы можете указать префикс класса для автозагрузчика.

Вот еще одна подсказка :

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

Так попробуйте это:

'namespace' => 'My',

без завершающего подчеркивания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...