Мой первоначальный вопрос заключался в том, как сделать динамическую цепочку проверок уважения.
Моя реализация была такой:
$validator = v::notEmpty();
foreach ($validations as $validation) {
$variable = (string)$validation['validatorName'];
if (sizeof($validation['params']) > 0) {
$validator = $validator->$variable($validation['params'][0],$validation['params'][1]);
} else {
$validator = $validator->$variable();
}
}
Когда у валидации есть параметры, то, как я сделал, было неправильным, потому что если есть более двух параметров, это не сработает. Итак, я хотел динамически назначать параметры в зависимости от того, сколько параметров принимает каждая проверка. Это похоже на динамическое связывание проверок.
@DavidePastore, да, я сделаю это.






На первый взгляд, я не уверен, что это хорошая идея. Однако я не знаю проблемы, которую вы пытаетесь исправить, если вам действительно нужно создать валидаторы из массива, вы можете использовать call_user_func() или call_user_func_array().
Что-то вроде:
$validator = v::notEmpty();
foreach ($validations as $validation) {
call_user_func_array(
[$validator, $validation['validatorName']],
$validation['params']
);
}
Не могли бы вы улучшить свой вопрос, исправив грамматику, показывая с помощью кода, что вы хотите сделать, а также валидаторы, которые вы хотите использовать?