Créer facilement des formulaires pour vos objets avec FormBuilder
Nous avons vu dans les deux derniers articles comment générer des objets permettant d’utiliser efficacement notre base de donnée.
Voyons désormais le package PEAR::DB_DataObject_FormBuilder qui permet de créer automatiquement des formulaires depuis nos objets précédemment générés.
Reprenons là ou nous nous étions arrétés dans le dernier article.
Nous possédons un objet utilisateurs que nous avions créé avec peu d’efforts. Je vais maintenant vous exposer comment créer automatiquement un formulaire de traitement pour cet objet.
Tout d’abord vous devrez installer le package PEAR::DB_DataObject_FormBuilder disponible sur le site de PEAR, ou, via l’installeur ligne de commande :
pear install DB_DataObject_FormBuilder
Une fois le package installé nous pouvons passer à l’utilisation du générateur de formulaire.
-
<?php
-
-
// Chargement des librairies
-
require_once “DB/DataObject.php”;
-
require_once “DB/DataObject/FormBuilder.php”;
-
-
// Chargement de la configuration de l’objet
-
require_once “utilisateurs.config.php”;
-
-
// Fixons le niveau de debug de 0 à 5
-
DB_DataObject::debugLevel(0);
-
-
//Génération de l’objet
-
$utilisateurs = & DB_DataObject::factory(‘utilisateurs ‘);
-
// Génération du formulaire, ce formulaire est un HTML::QuickForm (cf documentaion sur pear.php.net)
-
$builder = & DB_DataObject_FormBuilder::create($utilisateurs);
-
$form =& $builder->getForm();
-
-
// Il ne reste plus qu’a affiche ce formulaire
-
// une fois formulaire validé
-
if ($form->validate()) {
-
// nous procédons aux insert / update
-
-
echo « <p class=’alert’>L’utilisateur $utilisateur->NOM à été créé/modifié avec succès.</p> »;
-
-
}
-
?>
Et hop, un formulaire tout beau, prêt à insérer des données dans notre base d’utilisateurs !
Si vous voulez éditer un enregistrement, rien n’est plus simple, il vous suffit de modifier :
-
<?php
-
-
[…]
-
//Génération de l’objet
-
$utilisateurs = & DB_DataObject::factory(‘utilisateurs ‘);
-
//Sélection de l’utilisateur ayant l’id = 1
-
$utilisateur->get(1);
-
// Génération du formulaire, ce formulaire est un HTML::QuickForm (cf documentaion sur pear.php.net)
-
$builder = & DB_DataObject_FormBuilder::create($utilisateurs);
-
$form =& $builder->getForm();
-
-
// Il ne reste plus qu’a affiche ce formulaire
-
-
[…]
-
?>
Dans le prochain article, j’approfondirais l’exemple d’utilisation des formulaires et des objets DataObject, en détaillant comment ne pas afficher un champs, appliquer des règles, et encore comment appliquer des traitements spéciaux aux données ( par exemple un MD5 sur un password)
