2011-02-09 75 views
1

我需要将我的自定义Zend验证器位置保存为“Zend/Validate”吗?我宁愿为我的所有自定义验证脚本创建一个文件夹,但除了更改命名空间外,在Zend文档中找不到任何内容。Zend验证器位置

这是我的错误消息。

“插件的名字‘UserNameValidate’没有在注册表中找到;使用路径:Zend_Validate_:Zend公司/验证/”

我想告诉它来搜索其他路径。

回答

2

我能够使用

addElementPrefixPath('Application_Validate', 
            '../application/validate', 
            'validate'); 
1

您是否检查过API文档? Zend_Validate中有APPLICATION_PATH/validators的addDefaultNamespaces方法...

public static function addDefaultNamespaces($namespace){ 
+0

我的印象是,改变了名称空间允许您将类的前缀从“Zend_Validate的”更改为其他下,而不是位置来解决我的问题。 addDefaultNamespaces只有一个参数,这使我相信我的假设是真实的? – 2011-02-09 04:44:40

1

我通常把我的自定义验证(例如My_Validate_Age)命名的,例如。在这种情况下,PHP文件将是:APPLICATION_PATH/validators/Age.php。有了这个设置,我需要将验证器路径添加到Zend_Autoloader。为此在Bootstrap.php我有:

protected function _initAutoload() { 
    $autoLoader = Zend_Loader_Autoloader::getInstance(); 

    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
       'basePath' => APPLICATION_PATH, 
       'namespace' => '', 
      )); 

    $resourceLoader->addResourceType('validate', 'validators/', 'My_Validate_'); 

    $autoLoader->pushAutoloader($resourceLoader); 

} 

希望这会对你有帮助。