Soumis par Maxence Delannoy le jeu, 07/05/2009 - 11:41
Bizarrement, le Zend Framework ne fournit pas de validateur pour vérifier que la syntaxe d'une URL est correcte. Pourtant, le composant Zend_Uri dispose d'une méthode check qui remplit ce rôle. On peut s'en servir pour écrire un validateur personnalisé :
class Wiip_Validate_Uri extends Zend_Validate_Abstract { const BAD_URI = 'badUri'; protected $_messageTemplates = array( self::BAD_URI => "'%value%' n'est pas une URI valide" ); public function isValid($value) { $this->_setValue($value); if (!Zend_Uri::check($value)) { $this->_error(); return false; } return true; } }
Vous pouvez l'utiliser dans vos formulaires de cette façon :
class MonFormulaire extends Zend_form { public function init() { [..] // Ajoute un champ "web" au formulaire $this->addElement( 'text', 'web', array( 'label' => 'Site Web :', 'size' => 64, 'validators' => array('Uri') ) ); // Ajoute le préfixe aux chemins de recherche des plugins de validation $this->web->addPrefixPath('Wiip_Validate', 'Wiip/Validate', 'validate'); [..] } }
Note du 29/09/2009 : Zend_Uri ne supporte que les schémas HTTP et HTTPS. On ne peut donc pas s'en servir pour l'instant pour valider une adresse FTP par exemple.



Poster un nouveau commentaire