Zend框架 - addPrefixPath和名称空间

时间:2011-08-19 10:15:24

标签: zend-framework

我尝试使用$ element-> addPrefixPath()来加载我的自定义验证器,但在我向ini文件中添加名称空间自动加载之前,它不会找到该类。

我认为addPrefixPath的重点只是加载表单的验证器类而不是整个应用程序。这是对的吗?

1 个答案:

答案 0 :(得分:0)

这取决于您如何调用验证器并将其附加到元素:

  1. 使用实例
  2. 使用“缩写”格式(我自己的术语)
  3. 作为一个例子:

    $validator = new My_Validate_SomeValidator(array(
        'option1' => 'value1',
        'option2' => 'value2',
    ));
    $element->addValidator($validator, true);
    

    在这种情况下,您自己实例化验证器。因此,需要将My_添加为自动加载器命名空间。

    或者,使用“缩写”格式:

    $element->addValidator(array('SomeValidator', array(
        'option1' => 'value1',
        'option2' => 'value2',
    ), true);
    

    $element->setValidators(array(
        array('EmailAddress', true),
        array('SomeValidator', true, array(
            'option1' => 'value1',
            'option2' => 'value2',
        ),
    ));
    

    在这种情况下,您只为元素提供缩写名称 - 'SomeValidator' - 对于验证程序,隐式期望元素处理实例化。因此,有必要为元素提供一些命名空间/路径信息,以便它可以完成工作。