我有一个扩展Zend_Validate_Abstract
的自定义Zend Validate类
验证器是一个运行外部命令行工具的文件验证器,它可以验证和处理文件。
如果文件无效,则没有问题。但是如果文件有效,我可以用命令行工具返回的一些信息以某种方式编辑验证器操作的Zend_Form_Element_File
的值吗?
如果没有,考虑到我只想运行一次外部工具,会有什么好处?
解决问题
我可以创建一个运行命令行工具的Zend Filter,用解析信息更新值,包括错误。然后我让验证器简单地检查值数组是否包含过滤器留下的错误?
答案 0 :(得分:2)
为什么不将元素传递给验证器:
class CustomFileValidator extends Zend_Validate_Abstract {
public $element = null;
public function isValid($value) {
//run external tool
//check response, validity checks
//...
//modify the element if valid. e.g.:
$this->element->setValue('');
}
public setElement(Zend_Form_Element $element) {
$this->element = $element;
}
}