Ciao.
Da un articolo di Fabio Sutto ho eleborato questa bozza di codice:
Codice PHP:
<?php
error_reporting
(E_ALL E_STRICT);
define("IS_REQUIRED"'"%s" č un campo obbligatorio') ;
define('NOT_NUM''"%s" non contiene un numero valido') ;
class 
ValidatorFactory{
    public function 
createValidator($validator,$field,$value){
        if(!
class_exists($validator)){
        throw new 
Exception('Invalid object parameters');
    }
           return new 
$validator($field,$value);
   }
}
abstract class 
AbstractValidator{
    public static 
$error= array();
    abstract function 
validate();
    public function 
setError($msg){
        
self::$error[]= $msg;
    }
    public static function 
getErrors(){
        return 
self::$error;
    }
    public static function 
getError(){
        return 
array_shift(self::$error);
    }
    public static function 
isValid(){
        return !(bool)
count(self::$error) ;
      }
}
//
class IsEmpty extends AbstractValidator{
    private 
$value'';
    private 
$field'';
    public function 
__construct($field,$value){
        
$this->field$field;
        
$this->value$value;
    }
    public function 
validate(){
        if(empty(
$this->value)){
            
parent::setError(sprintf(IS_REQUIRED$this->field));
        }
    }
}
//
class IsNumeric extends AbstractValidator{
    private 
$value'';
    private 
$field'';
    public function 
__construct($field,$value){
        
$this->field$field;
        
$this->value$value;
    }
    public function 
validate(){
        if(!
is_numeric($this->value)){
            
parent::setError(sprintf(NOT_NUM$this->field));
        }
    }
}
//
try{
      
$valFactory=new ValidatorFactory();
    
$valFactory->createValidator('IsEmpty','Username','')->validate();
    
$valFactory->createValidator('IsNumeric','Age','xxx')->validate();
    if(
AbstractValidator::isValid()){
        
//insert data
    
}
    else{
        foreach(
AbstractValidator::getErrors() as $error)
        {
            echo 
"

"
.$error."</p>";
        }
    }
}
catch(
Exception $e){
  echo 
$e->getMessage();
  exit();
}


?>
Che ne pensate suggerimenti ?