我有一个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()或其他方法的对象之前.
或者,您还可以在options数组中传递一个新的类前缀字符串,Zend_Filter_Input构造函数的第四个参数:
$options = array('inputNamespace' => 'Core_Filter'); $inputFilter = new Zend_Filter_Input($filters,$validators,$data,$options);
另见我为Zend_Filter_Input写的documentation.