Me parece una buena idea hacer una clase para cada validador, pero no tengo claro cómo implementarlo.
A ver qué os parece esta primera idea:
Código PHP:
interface iValidator
{
public function check();
}
class cValidatorEmpty implements iValidator
{
private $value;
public function __construct($value) { $this->value = $value; }
public function check() { return empty($value); }
}
class cValidatorPasswordConfirm implements iValidator
{
private $value1;
private $value2;
public function __construct($value1, $value2)
{
$this->value1 = $value1;
$this->value2 = $value2;
}
public function check() { return $value1 == $value2; }
}
De esta aproximación, lo que no me convence es que hay que crear un objeto de la clase y luego llamar al método
check. Había pensado en hacer el método
check estático pero tendría que obtener los argumentos con las funciones
func_num_args y
func_get_args con lo que, seguramente, el rendimiento se vería afectado.