我有一个需要改进的验证课程。如果我需要一些自定义验证,我需要指定一个自定义函数。它有点像这样:
有没有我可以改变这个来做这样的事情?
$validation = new validation;
// Insert rules here.
$validation->function() = $this->function();
通过这样做,我可以摆脱创建不需要的类实例的步骤。
答案 0 :(得分:6)
您需要使用Strategy Pattern。为每个要执行的验证设置Validator类,然后根据需要在使用类中实例化此类。然后将验证委托给验证器实例。
看看how Zend Framework does的想法 另请参阅我对此相关问题的回答中给出的示例:
答案 1 :(得分:1)
PHP并不真正支持monkeypatching
,但您可以创建一个子类并将其用作$validation
对象(这是我这样做的方式)。或者你可以想办法使用__call来做到这一点:http://php.net/manual/en/language.oop5.overloading.php
答案 2 :(得分:1)