Dan*_*Dan 6 php validation object
我目前正在开发一个OO PHP应用程序.我有一个名为validation的类,我想用它来检查提交的所有数据是否有效,但是我显然需要在某处定义要检查的每个属性的规则.目前,我正在构建一个新对象时使用数组.例如:
$this->name = array(
'maxlength' => 10,
'minlength' => 2,
'required' => true,
'value' => $namefromparameter
)
Run Code Online (Sandbox Code Playgroud)
每个属性一个数组.
然后,我将从验证类调用静态方法,该方法将根据每个数组中定义的值执行各种检查.
有更有效的方法吗?任何建议表示赞赏 谢谢.
我知道关联数组通常用于配置PHP中的东西(它被称为魔术容器模式,被认为是不好的做法,顺便说一下),但为什么不创建多个验证器类,每个类都能处理一个规则?像这样的东西:
interface IValidator {
public function validate($value);
}
$validators[] = new StringLengthValidator(2, 10);
$validators[] = new NotNollValidator();
$validators[] = new UsernameDoesNotExistValidator();
Run Code Online (Sandbox Code Playgroud)
与使用数组的实现相比,这有许多优点:
array('reqiured' => true))编辑:这里是一个要回答我给的链接到一个不同的问题,但主要适用于这一个为好.