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