Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour.
Je souhaiterais mettre en place des Validators et filtres sur les datas renvoyées par mes formulaires.
J'aimerais, un peu à la manière de Symfony, sortir ses traitements de mes controllers et les placer dans des classes particulières. je n'ai rien vu de semblable dans les documentations de zend ni de conseils de bonnes pratiques. En outre vaut il mieux faire ses traitements au niveau du controller ou au niveau du modèle ?
Merci d'avance pour vos conseils.
Hors ligne
Personnellement, mes modèles sont validables.
Il possèdent tous une méthode getForm(), qui retourne un formulaire complet avec validateurs/filtres.
Avant d'enregistrer via save(), chaque modèle demande au formulaire si ses données sont valides.
Mes modèles servent ainsi de fabrique de formulaires, ils peuvent en posséder plusieurs, mais il en ont au moins un qui les "reflète" parfaitement.
Pour moi chaque modèle doit être validable. De manière générale, au moins il y a de code dans une action, au mieux c'est (le Fat Stupid UglyController)
Hors ligne
Ok merci pour ta contribution. Mon cas est un peu particulier car je n'utilise pas les zend_form. Mais ta façon de faire va dans le sens au quel je pensais.
Merci
Hors ligne
j'utilise une classe validate qui fait les validation de mes formulaires
elle utilise un pattern (array qui associe à chaque champs le type de vérification et les message en cas d'erreur)
un champ peut avoir plusieurs entrée dans le pattern
je lui donne donc un form et elle me retourne un tableau d'erreurs pour chaque champs une liste d'erreurs.
et j'ai des méthodes comme isValid pour le résultat global.
cette classe ne fait que des vérifications syntaxiques. c'est a dire qu'elle permet au contrôleur de vérifier que ce qu'il va fournir au modèle est conforma à ce qu'il attend.
j'utilise aussi les filters de Zend mais je n'ai rien définie de particulier c'est donc le contrôleur qui se charge de les appeler.
lorsque je reçois un formulaire la première étape et le filtrage (question de sécurité)
vient ensuite la validation syntaxique du ressort du contrôleur et fait au travers de la classe validate
et pour finir le contrôleur invoque le modèle pour la validation sémantique (la vérification des règles métier)
un exemple je manipule des numéros INSEE
étape 1 suprimer les espaces avant après les injection de code php et autre
étape 2 vérifier que c'est un nombre entier positif
étape 3 vérifier que le n° est conforme au règles des numéros de Sécu
ma classe validate n'est pas une classe métier mais une classe de contrôle.
on pourrait faire de même avec les validation.
le métier ne portant que la problématique métier
A+JYT
Hors ligne
Souvent, j'aimerai bien voir le code de certaines personnes pour voir les concepts et modélisations opérées pour mettre en place certaines choses dans une appli MVC/Zend notamment. C'est toujours ce qui manque dans les ressources que l'on trouve dans des livres ou sur le web.
Hors ligne
Pages: 1