Yo creo que mejor seria que las clases tengan un método propio de validación y usen el general solo para devolver el resultado de dicha. De esta manera, podrías retornar $this en el propio validador y al final comprobar con una funcion (pj: isValid()) que todo esta correcto.
Por ejemplo.
Saludos
Código (php) [Seleccionar]
<?php
class Validador {
protected $isValid = true;
protected $input = null;
public function setInput($input){
$this->input = $input;
return $this;
}
public function isValid(){
return $this->isValid;
}
/** FUNCIONES DE OTRAS CLASES ... **/
public function isString(){
if(!$this->isValid){ return $this; } // No nos molestamos ya que un validador previo ha dado falso
$this->isValid = (is_string($this->input));
return $this;
}
public function hasLength($length){
if(!$this->isValid){ return $this; } // No nos molestamos ya que un validador previo ha dado falso
$this->isValid = (strlen($this->input) > $length);
return $this;
}
}
$test = new Validador();
var_dump($test->setInput('holakase')->isString()->hasLength(7)->isValid()); // true
var_dump($test->setInput(123)->isString()->isValid()); // false
var_dump($test->setInput('prueba123')->hasLength(50)->isString()->isValid()); // false
Por ejemplo.
Saludos