Callback (fonction de rappel)
Zend_Validate_Callback permet de fournir une fonction de rappel
utilisée pour valider la valeur.
Options supportées par Zend_Validate_Callback
Les options suivantes sont supportées par
Zend_Validate_Callback :
callback : spécifie la fonction
de rappel qui sera utilisée pour la validation.
options : spécifie les options
additionnelles qui seront fournies à la fonction de rappel.
Utilisation classique
Le plus simple est de posséder une fonction classique, qui sera utilisée
pour valider la donnée. Soit la fonction ci-après :
Pour l'utiliser avecZend_Validate_Callback vous devez simplement
effectuer votre appel comme ceci:
isValid($input)) {
// input semble valide
} else {
// input est invalide
}
]]>
Utilisation avec les fonctions anonymes (closures)
PHP 5.3 introduit les fonctions
anonymes ou fonctions de fermeture. PHP traite les
fonctions anonymes comme des fonctions de rappel valides, et il est donc
possible d'utiliser celles-ci avec Zend_Validate_Callback.
Exemple:
isValid($input)) {
// input semble valide
} else {
// input est invalide
}
]]>
Utilisation avec les méthodes de rappel
Bien sûr, il est aussi possible d'utiliser des méthodes de rappel:
La définition de la fonction de rappel se fait alors dans un tableau contenant un
objet de la classe et la méthode à appeler:
isValid($input)) {
// input semble valide
} else {
// input est invalide
}
]]>
Il est aussi possible d'utiliser une méthode statique comme fonction de rappel:
isValid($input)) {
// input semble valide
} else {
// input est invalide
}
]]>
Enfin, PHP 5.3 définit la méthode magique __invoke().
Si vous l'utilisez, alors un simple objet suffira comme fonction de rappel:
isValid($input)) {
// input semble valide
} else {
// input est invalide
}
]]>
Ajouter des options
Zend_Validate_Callback permet d'utiliser des options, celles-ci
seront alors passées comme argument supplémentaires à la fonction de callback.
Soit la définition suivante:
Il extsite deux manières d'indiquer des options au validateur : via le constructeur ou sa
méthode setOptions().
Via le constructeur, passez un tableau contenant les clés "callback" et "options":
array('MyClass', 'myMethod'),
'options' => $option,
));
if ($valid->isValid($input)) {
// input semble valide
} else {
// input est invalide
}
]]>
Sinon, vous pouvez passer les options après:
setOptions($option);
if ($valid->isValid($input)) {
// input semble valide
} else {
// input est invalide
}
]]>
Si des valeurs supplémentaires sont passées à isValid() elles
seront utilisées comme arguments supplémentaires lors de l'appel à la fonction de rappel,
mais avant les options $options.
setOptions($option);
if ($valid->isValid($input, $additional)) {
// input semble valide
} else {
// input est invalide
}
]]>
Lors de l'appel à la fonction de rappel, la valeur à valider sera toujours passée comme premier argument
à la fonction de rappel suivie de toutes les autres valeurs passées à
isValid(); les autres options suivront. Le nombre et le type d'options qui
peuvent être utilisées est illimité.