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
|