My_Validate_PasswordConfirmation应该放在Zend框架中的哪个位置?

时间:2009-06-18 00:56:24

标签: zend-framework

我正在使用官方Zend框架文档中的密码确认验证器:
http://framework.zend.com/manual/en/zend.form.elements.html

在Bootstrap.php中,我将命名空间设置为
'namespace'=> '我的_'

该文件位于 应用/验证/ PasswordConfirmation.php

但是,“致命错误:未找到类'My_Validate_PasswordConfirmation'”出现在我的Zend_Form中。

我该怎么做才能解决问题?

1 个答案:

答案 0 :(得分:4)

我设计并实现了Zend_Filter_Input,包括其命名空间功能。

您对此功能的工作原理有一种了解。这意味着当该类的实际名称更长时,允许您为验证器类使用短名称。你显然正在反过来,试图命名一个名称比实际名称更长的类。

要解决此问题,我建议您执行以下步骤:

  • 将班级命名为My_Validate_PasswordConfirmation
  • 将其放入`application / My / Validate / PasswordConfirmation.php
  • namespace=>'My_Validate'添加到您的Zend_Filter_Input选项。
  • 简单地将验证器调用为“PasswordConfirmation”。

更新:我花了一些时间在这上面。似乎我的第一个想法是偏离目标。您拥有的命名空间问题与Zend_Filter_Input的功能无关,它与Zend_Application引导程序功能有关。您似乎可以为自动加载器指定类前缀。

这是另一个clue

  

Zend_Loader_Autoloader_Resource制作   假设你是所有代码   自动加载将使用下划线   名称空间之间的分隔符   组件和类。结果是,   您不需要使用尾随   注册资源时强调   自动加载机。

所以试试这个:

'namespace' => 'My',

没有尾随下划线。