Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-02-2008 16:48:03

Moimeme
Membre
Date d'inscription: 19-04-2007
Messages: 120

Controle des données formulaire

Bonjour à tous,

Pour ceux qui n'utilise pas Zend_Form, quelle approche vous utilisez pour contrôler vos données d'entrées vers votre BDD ? j'avous que Zend_Form me plait moyen au niveau MVC et flexibilité donc je veux essayer de me faire une couche sympa de contrôle de formulaire mais j'ai un peu de mal pour savoir par ou commencer et quelle solution est la plus pratique, flexible et efficace. Vous faites comment vous ?

Hors ligne

 

#2 18-02-2008 17:29:34

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Controle des données formulaire

je sépare deux choses

le filtrage des données qui consiste à nettoyer et lire les données du formulaire pour les rendre acceptable par le modèle.
suppression des espaces avant après si nécessaire vérification de type utilisateur et

et la vérification métier.

la première est assuré par le contrôleur. c'est lui qui connais la vue et qui sais dans quelle langue est l'interface utilisateur. c'est donc lui qui va accepter ou refuser la chaine '28/02/2008' comme valeur de date suivant qu'on est en français ou en anglais. il va aussi en faire une variable dans le type attendu par le modèle (dans ce cas objet date ou chaine format iso ou entier timestamp)

le modèle lui va s'assurer que les données sont sémantiquement correcte sans sans du metier. par exemple pas de prise de rdv après j-2

pour cela je mets dans mon contrôleur une fonction une _filter qui est défini à partir d'un tableau
et une autre qui est fournis par le métier que j'appelle dans la fonction _verifForm

du coup ma vérification de formulaire est commune à tous mes formulaires elle se réduit à

Code:

   public function _checkFormAction($perform = true) {
      $this->_linkContext();

      if ($form = $this->_request->get('form')) 
      if (method_exists($this, '_filter')) {
         $this->_filter($form);
      } else {
         foreach ($form as $key=>$value) {
            $this->context->formData->$key = $value;
         }
      }

      $ok = $this->_verifForm();
      if ($ok) {
         $redirect = $this->_to('save');
      } else {
         $this->_messenger->addError($this->_messages['invalidFormData']);
         $redirect = $this->_to('showForm');
      }
      if ($perform) $this->_redirect($redirect);
      else return $redirect;
   }

cette méthode est placé dans une classe d'action dont dérive tous mes contrôler.
A+JYT

Hors ligne

 

#3 18-02-2008 21:16:54

Moimeme
Membre
Date d'inscription: 19-04-2007
Messages: 120

Re: Controle des données formulaire

ok cette approche me parait bien sympa et cohérente.
Pour les filtres et les controles de saisie (date, requis, entier ...) coté controlleur tu utilises les zend_filter et zend_validate ?

Hors ligne

 

#4 19-02-2008 09:14:37

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Controle des données formulaire

Oui et non
J'avais déjà un truc avant ZF et j'en ai gardé un bout mais je pense passer tout ça sous Zend_Validate et Zend_Filter
mais l'introduction de Zend_Form vient un peu perturber tout ça
Alors pour le moment je ne sais pas trop comment je vais faire évoluer la chose

A+JYT

Hors ligne

 

#5 19-02-2008 09:24:48

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Controle des données formulaire

Petit retour pour une utilisation rapide de Zend_Form via .ini: c'est magique smile (mis à part un petit bug)
C'est vrai qu'on se perd un peu avec le code pas forcément découpé au mieux, mais ça facilite tellement la tâche que j'estime que ça en vaut la peine.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages