Occupiamoci ora della validazione dei dati ovvero di fornire all'utente dei messaggi di errore quando sbaglia ad inserire i dati nel modulo, ad esempio dimenticandosi di popolare un campo obbligatorio oppure quando sbaglia formato: una lettera in un campo numerico, una e-mail senza il carattere @, una data non esistente e così via.
Symfony, al momento in cui crea le classi implementa automaticamente alcune regole di validazione di default basandosi sulle indicazioni fornite dalla base dati. Queste regole si trovano nei file: BaseNazioneForm.class.php, BaseProvinciaForm.class.php, BaseComuneForm.class.php, BaseContattoForm.class.php tutti presenti nella directory sf_rubrica2libformbase. Le regole sono presenti all'interno della funzione setup
, quando viene richiamata la funzione setValidators
.
Proviamo allora a sovrascrivere alcune di queste regole presenti nelle classi dei file contenuti in sf_rubrica2libform che, come è noto, vengono ereditate da quelle appena viste.
Listato 29: Validatori
public function configure()
{
$this->validatorSchema['telefono'] = new sfValidatorNumber(
array('required' => true),
array('invalid' => 'Numero di telefono non corretto'));
$this->validatorSchema['cellulare'] = new sfValidatorNumber(
array('required' => true),
array('invalid' => 'Numero di cellulare non corretto'));
$this->validatorSchema['email'] = new sfValidatorEmail(
array('required' => false),
array('invalid' => 'Indirizzo e-mail non corretto'));
}
I campi sono abbastanza comprensibili. Lasciamo al lettore l'implementazione delle regole di validazione per gli altri campi e per gli altri moduli.