Php Zend框架中的自定义过滤器/验证器

Php Zend框架中的自定义过滤器/验证器,php,zend-framework,Php,Zend Framework,我有一个Zend Framework应用程序结构,如下所示: /application /library /Zend /Core /Filter /MyFilter.php /Validator /MyValidator.php 我想把自定义过滤器和验证器放在各自的文件夹中,并在使用时自动加载它们。然而,我不知道如何最好地完成这一点 我需要以这种方式使用Zend_Filter_输入的解决方案: $f

我有一个Zend Framework应用程序结构,如下所示:

/application
/library
    /Zend
    /Core
        /Filter
            /MyFilter.php
        /Validator
            /MyValidator.php
我想把自定义过滤器和验证器放在各自的文件夹中,并在使用时自动加载它们。然而,我不知道如何最好地完成这一点

我需要以这种方式使用Zend_Filter_输入的解决方案:

$filters = array(
    'month'   => 'Digits',
    'account' => 'StringTrim',
    'other'   => 'MyFilter'
);

$validators = array(
    'account' => 'Alpha',
    'other'   => 'MyValidator'
);

$inputFilter = new Zend_Filter_Input($filters, $validators);
我已经知道:

  • Core_Filter_MyFilter实现Zend_Filter_接口
  • 显然,过滤器和验证器已经在我的include路径中了

早在2007年,我就设计并实现了
Zend\u Filter\u Input

您可以添加新的类前缀,以帮助加载自定义筛选器和验证程序类。默认情况下,
Zend\u Filter\u Input
搜索前缀为
“Zend\u Filter”
“Zend\u Validate”
的类。试试这个:

$inputFilter->addNamespace('Core_Filter');
在运行对象的
isValid()
或其他方法之前

或者,您也可以在选项数组中传递一个新的类前缀字符串,第四个参数是
Zend\u Filter\u Input
构造函数:

$options = array('inputNamespace' => 'Core_Filter');
$inputFilter = new Zend_Filter_Input($filters, $validators, $data, $options);

另请参见我为
Zend\u Filter\u输入编写的

非常好!我花了好几个小时阅读文档,但我一定错过了提到的内容。非常感谢。这就是所谓的“给定问题的最终答案”:@BillKarwin,文档链接断开了。你能提供一个更新吗?@FopaLéonConstantin,我已经修复了链接。