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.

[code lang="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
echo $form->display();
// une fois formulaire validé
if ($form->validate()) {
// nous procédons aux insert / update
$form->process(array(&$builder,'processForm'),false);

echo "

L'utilisateur $utilisateur->NOM à été créé/modifié avec succès.

";

}
?>
[/code]
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 :

[code lang="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
echo $form->display();

[...]
?>
[/code]

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)

Laisser un commentaire

Nom : (Required)

E-mail : (Required)

Website:

Comment: