Я разработал и внедрил 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',
без завершающего подчеркивания.