Messages de validationChaque validateur basé sur Zend_Validate propose un ou plusieurs messages dans le cas d'un échec. Vous pouvez utiliser ces informations pour créer vos propres messages ou pour traduire les messages présents. Ces messages sont représentés par des constantes se trouvant en haut de chaque classe de validateur. Voyons Zend_Validate_GreaterThan pour un exemple complet:
Comme vous le voyez, la constante self::NOT_GREATER fait référence à un échec et est utilisée comme clé, le message lui-même est utilisé comme valeur dans le tableau des messages. Vous pouvez récupérer les templates de messages d'un validateur en utilisant la méthode getMessageTemplates(). Elle vous retourne le tableau comme vu ci-dessus qui contient tous les messages que le validateur pourrait retourner en cas d'échec de validation.
La méthode setMessage() permet de modifier un message unique correspondant à un cas particulier d'échec de validation.
Le deuxième paramètre indique le cas d'échec à surcharger. Lorsque vous omettez ce paramètre, alors le message précisé sera affecté comme message pour tous les cas d'échec possibles du validateur. Utiliser les messages de validations pré-traduitsZend Framework est livré avec plus de 45 validateurs différents et plus de 200 messages d'échecs. Cela peut-être pénible de tous les traduire. Pour votre convenance, Zend Framework est livré avec des messages d'échec pré-traduits. Vous les trouverez dans /resources/languages de votre installation de Zend Framework.
Donc pour traduire les messages de validation en français par exemple, tout ce qu'il y a à faire est d'attacher un objet de traduction à Zend_Validate en utilisant les fichiers de ressources (pré-traductions).
Limiter la taille d'un message de validationIl peut être nécessaire parfois de limiter la taille en caractères des messages d'erreur retournés. par exemple si une vue n'autorise que 100 caractères par ligne. Zend_Validate propose une telle option. La taille actuelle est Zend_Validate::getMessageLength(). -1 signifie que le message ne sera pas tronqué et entièrement retourné, c'est le comportement par défaut. Pour limiter la taille, utilisez Zend_Validate::setMessageLength(). Lorsque la taille excède cette valeur, le message sera alors tronqué et suivi de '...'.
|