- Implementa le regole come array associativo che ha per chiavi i nomi delle regole, e per valori delle closure.
- Associa a ogni property la regola che preferisci
- Nel setter se è definita una regola per la property che stai settando la applichi altrimenti associ alla property il valore di default.
es.
1.
Codice PHP:
$this->regole = array(
"stringhe"=>function($v){return htmlspecialchars(trim($v));}
,"numeri"=>function($v){return intval($v);}
)
2.
Codice PHP:
//associa le regole alle 50 property
$this->tipiRegole = array(
"name"=>"stringhe"
,"age"=>"numeri"
)
3.
Codice PHP:
public function __set($p, $v){
if(array_key_exists($p, $this->tipiRegole){
$this->$p = $this->regole[$this->tipiRegole[$p]]($v);
}
else $this->$p = $v; //non applicare nessun filtro
}