contraint 일괄 체크 함수 추가

This commit is contained in:
2018-09-02 14:18:59 +09:00
parent 6c52c1177b
commit 34a84c6548
3 changed files with 57 additions and 2 deletions
+25
View File
@@ -172,4 +172,29 @@ abstract class Constraint{
return $this->reason;
}
public static function testAll(array $contraintPacks, array $input):?string{
foreach($contraintPacks as $constraintArgs){
if (!$constraintArgs){
continue;
}
$method = $constraintArgs[0].'::build';
/** @var \sammo\Constraint\Constraint $contraint */
$constraint = call_user_func($method,$input);
if(count($constraintArgs) > 1){
$arg = $constraintArgs[1];
$constraint->arg($arg);
}
if(!$constraint->test()){
return $constraint->reason();
}
}
return null;
}
}