【问题标题】:Zend framework - addPrefixPath and namespacesZend 框架 - addPrefixPath 和命名空间
【发布时间】:2011-08-19 10:15:23
【问题描述】:

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

我认为 addPrefixPath 的全部意义在于只加载表单的验证器类,而不是整个应用程序。这是正确的吗?

【问题讨论】:

  • 你添加的是绝对路径还是相对路径?

标签: zend-framework


【解决方案1】:

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

  1. 使用实例
  2. 使用“缩写”格式(我自己的术语)

作为一个例子:

$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' - 用于验证器,隐含地期望 元素 来处理实例化。因此,需要为元素提供一些命名空间/路径信息以便它能够完成这项工作是有道理的。

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    相关资源
    最近更新 更多