php - Zend Framework 中的自定义过滤器/验证器

标签 php zend-framework

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

/application
/library
    /Zend
    /Core
        /Filter
            /MyFilter.php
        /Validator
            /MyValidator.php

我想将自定义过滤器和验证器放在各自的文件夹中,并在使用时自动加载它们。但是,我不知道如何最好地完成此任务。

我需要以这种方式使用 Zend_Filter_Input 的解决方案:

$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_Interface
  • 显然,过滤器和验证器已经在我的包含路径中。

最佳答案

我在 2007 年设计并实现了 Zend_Filter_Input

您可以添加新的类前缀来帮助加载自定义过滤器和验证器类。默认情况下,Zend_Filter_Input 搜索具有前缀"Zend_Filter""Zend_Validate" 的类。试试这个:

$inputFilter->addNamespace('Core_Filter');

在运行 isValid() 或对象的其他方法之前。

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

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

另见 documentation我为 Zend_Filter_Input 编写。

关于php - Zend Framework 中的自定义过滤器/验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/184996/

相关文章:

PHP Interactive - 从命令行加载文件

php - 如何选择某些元键的所有元值?

php - Cookie 保存为两个不同的 url

php - ZEND 框架 fatal error : Uncaught exception 'Zend_Application_Bootstrap_Exception'

php - Zend Framework session 命名空间调试 print_r 或等价物

zend-framework - Zend Framework 中的布局初始化特性

php - UNSET 不适用于 Zend Session

php - yii2 : How to Customize Error Pages like 404 and 503

javascript - 如何在 JSON.parsed responseText 上保留 hasOwnProperty?

php - 替代登录和身份验证方法(适用于老年人)