Zend Framework tutoriel #4 : Création de formulaire et validations avec Zend_Form et Zend_Validate


forms

Zend Framework possède son propre outil pour gérer les formulaires correctement : Zend_Form est là pour ça !
Il s’agit d’une librairie qui gère vos composants de formulaires (y compris leur rendu), les validations, le filtrage des données, et la gestion de sous-formulaires.
La librairie Zend_Validate qui gère les validateurs sera aussi utiliser dans ce tutoriel afin d’illustrer les validations de formulaire et ce de façon personnalisé.

Tout d’abord nous allons voir les principes basiques des formulaires avec Zend Framework : il nous faudra ajouter un dossier “forms” dans notre répertoire “application”.

forms_folder

Voici un premier example de la création d’un formulaire dans notre fichier “Author.php”. Il s’agit d’une classe qui correspondra à un formulaire d’inscription d’un auteur :

Nous avons réaliser une ébauche de formulaire, pour l’utiliser dans notre contrôleur et vue, rien de plus simple

AuthorController.php

Ensuite dans la vue, on affiche le formulaire et on définit son action :

Author.phtml

Voici un exemple beaucoup plus complet d’un formulaire avec des validateurs, internationalisation et un captcha :

Dans le prochaine tutorial, nous verrons comment mettre en application tout ce que nous avons vu précédemment dans un “CRUD” (Create Read Update Delete) qui illustrera l’utilisateur du design-pattern MVC, Zend_Db, Zend_Form, Zend_Validate et Zend_Layout.

  • http://wiip.fr Maxence

    Tu devrais utiliser la méthode init pour initialiser ton formulaire au lieu de surcharger le constructeur.

    • http://www.alexandre-julien.com Alexandre JULIEN

      En effet, j’aurais du en parler à la fin. J’ai encore quelques habitudes de Symfony qui sont restés donc pour les débutants, il est préférable d’utiliser la méthode init() au lieu de surcharger le constructeur. Cela évite notamment le “parent::__construct($options);”.

      Cela permet au moins d’illustrer comment ce construit un objet Zend_Form.

  • baikhar

    merçi bien pour l’explication
    mais j’arrive pas a comprendre comment on as réalisé la connexion a la base de données
    svp si tu peu explique la connexion et en quelle fichier exactement
    merçi

    • http://www.alexandre-julien.com admin

      Bonjour cette partie ne détaille que la création d’un formulaire et la mise en place de validateur, il ne traite pas de la partie enregistrement en base de données.
      Pour cela tu peux voir comment on interagie avec une base de données dans la partie #3 sur la couche modèle.
      Pour sauvegarder le contenu du formulaire il suffit de créer une méthode dans la classe Db_Table_Author par exemple et de créer une requête pour insérer ou mettre à jour grâce aux valeurs de ton formulaire.

  • nico

    Merci beaucoup c’est clair et précis. Je comprend mieux l’interaction entre le contrôleur et la vue.

  • http://www.gool.fr dekar

    c’est bien cette exemple mais comment faire pour que zend reconnais le formulaire
    —-il ya quelque instruction pour configure cette formulaire dans application.ini/bootstrap.php