Pour donner un apperçu de l'utilité de PEAR
au sein d'un développement PHP, nous allons voir une application
on ne peut plus pratique : l'utilisation de package PEAR::HTML_QuickForm.
Celui-ci va nous permettre de créer rapidement un formulaire,
et de ne pas avoir à nous soucier des routines de test et
de validation, celles-ci étant automatiquement prises en
compte par QuickForm, que ce soit coté client (JavaScript)
ou coté serveur (PHP, donc).
Pour utiliser,
il vous faudra installler le package HTML_QuickForm,
et être sûr d'avoir aussi le package HTML_Common,
qui fournit les méthodes de gestion des balises et attributs
HTML.
Plongeons tout
de suite dans un exemple de code : un formulaire d'inscription où
l'utilisateur doit entre son mail dans un champ texte, et entrer
une seconde fois ce mail pour le confirmer. En quelques lignes,
QuickForm s'occupera de comparer les deux champs et d'envoyer un
message d'erreur à l'utilisateur...
(fichier inscription.php)
<?php
require_once ('HTML/QuickForm.php');
$form = new HTML_QuickForm();
function
compMail($element, $mail2)
{
global $form;
$mail1 = $form->getElementValue('mail1');
return ($mail1 == $mail2);
}
$form->registerRule('compare', 'function', 'compMail');
$form->addElement('text', 'mail1', 'Votre mail');
$form->addElement('text', 'mail2', 'Confirmez votre mail');
$form->addElement('submit', 'submit', 'Envoyer');
$form->addRule('mail1', 'Entrez votre mail', 'required');
$form->addRule('mail1', 'Votre mail est invalide', 'email');
$form->addRule('mail2', 'Confirmez votre mail', 'required');
$form->addRule('mail2', 'Votre mail est invalide', 'email');
$form->addRule('mail2', 'Les mails ne sont pas identiques', 'compare',
'function');
if ($form->validate())
{
$form->freeze();
}
$form->display();
?>
Après avoir avoir instancié le classe HTML_QuickForm()
sous le nom de $form, nous construisons
une fonction compMail() qui renverra
1 si les deux champs sont identiques. Nous récupérons
le contenu entré par l'utilisateur à l'aide de la
méthode getElementValue('nomDuChamp').
Nous définissons ensuite une règle de validation
: compare fera appel à compMail(),
et est définie via la méthode registerRule('nomRegle',
'typeRegle', 'donnée').
addElement() nous permet ensuite
de créer les éléments graphiques du formulaire.
Ici, nous créons un champs texte appellé mail1
ou mail2, avec une texte pour description.
Le type de l'élément est défini comme en HTML
: submit ou reset
pour un bouton, text ou password
pour un champ texte, checkbox pour
une case à cocher... Il faut bien entendu faire attention
à ce que chaque élément ait un identifiant
unique, sinon QuickForm n'affichera que le premier élément
ayant un identifiant donné. Notons aussi qu'il n'est pas
toujours nécessaire de mettre une description : c'est juste
très recommandé (surtout pour les boutons). Ainsi
un peut ajouter un bouton radio simple avec le code suivant :
$form->addElement('radio',
'head');
Page 1 | 2
|