当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《ZendFramework中的自定义过滤器/验证器》经验,为你挑选了1个好方法。

我有一个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

显然,过滤器和验证器已经在我的包含路径中.

Bill Karwin.. 18

Zend_Filter_Input在2007年设计并实施.

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

$inputFilter->addNamespace('Core_Filter');

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

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

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

另见我写的文档Zend_Filter_Input.



1> Bill Karwin..:

Zend_Filter_Input在2007年设计并实施.

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

$inputFilter->addNamespace('Core_Filter');

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

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

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

另见我写的文档Zend_Filter_Input.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有