Le PHP est rapidement devenu l'un des langages
les plus populaires du web. De fait, il possède au moins
trois atouts essentiels:
- premièrement, les scripts PHP s'insèrent
directement dans le code HTML. Contrairement aux scripts CGI, le
développeur n'a plus à produire la page "en sortie"
à l'aide d'instructions du langage du script. La facilité
de développement s'en trouve accrue;
- deuxièment, le PHP dispose d'un très grand nombre
de fonctions natives pour tous les usages, et notamment la connexion
aux principaux systèmes de gestion de bases de données
(à cet égard, MySQL reste un partenaire privilégié);
- enfin, PHP est gratuit, et son code source est ouvert (contrairement
aux Active Server Pages de Microsoft).
Relativement facile à apprendre, le
PHP reste encore jeune, et ne bénéficie probablement
pas d'une architecture aussi élégante que celle du
Perl par exemple. Ce qu'il gagne en souplesse, il le perd, dans
certains cas, en rigueur. Au final, c'est une question de goût
qui fera pencher la balance pour tel ou tel langage "côté-serveur"
(server side).
Les bases du PHP
Examinons le code suivant:
<?php
$temp=getdate(time());
?>
<P ALIGN="center">
<?php
print "Introduction au PHP";
?>
Le
<?php
printf("%d/%d/%d", $temp[mday],$temp[mon],$temp[year]);
?>
</P>
<P>Le PHP est rapidement devenu...</P>
La fonction getdate(time()) nous renvoie la date et l'heure
sous forme d'un tableau associatif, nous les récupérons
ensuite en "formatant" (avec printf()) l'affichage
(sous forme jj/m/aaaa).
Nous aurions pu également créer deux fichiers d'extension
.php, reglerdate.php et afficherdate.php, contenant
respectivement:
<?php
$temp=getdate(time());
?>
et
<?php
printf("%d/%d/%d", $temp[mday],$temp[mon],$temp[year]);
?>
Notre programme principal s'écrirait alors:
<?php
include("reglerdate()");
?>
<P ALIGN="center">
<?php
print "Introduction au PHP";
?>
Le
<?php
include("afficherdate()");
?>
</P>
<P>Le PHP est rapidement devenu...</P>
Manipulation de formulaires
Il s'avère particulièrement simple de manipuler
les données d'un formulaire en PHP. Les valeurs des champs
sont en effet automatiquement récupérées sous
forme de variable (dont le nom est la valeur de l'attribut NAME
de la balise <INPUT>). Ainsi le code suivant:
<FORM action="formulaire.php"
method="get">
Votre nom et votre adresse email, s'il vous plait:<BR>
<INPUT type="text" size=20 name="donnees[nom]"><BR>
<INPUT type="text" size=20 name="donnees[email]"><BR>
<BR><INPUT type="submit">
</FORM>
tire profit de cet atout pour récupérer les données
directement sous forme de tableau associatif. Il est alors quasi-immédiat
de traiter ces informations en PHP:
<?php
while (list($nom,$valeur) = each($donnees)) {
print "$nom: $valeur<BR>";
}
?>
La fonction list() extrait les couples de valeur du tableau,
parcouru par une boucle while (cond) et la
fonction each(). Il ne reste plus qu'à afficher le
résultat. L'examen du code précédent permet
en outre de ce familiariser avec la représentation des variables
scalaires et des tableaux en PHP - ces deux types de données
sont précédés de "$".
Fonctions et classes
Laissons de côté, dans cette introduction, l'étude
exhaustive des opérateurs, des boucles conditionnelles et
des instructions de choix en PHP (leur syntaxe est proche de celle
d'autres langages de script) pour nous contentrer sur l'architecture
"à plus grande échelle" du langage.
Le PHP dispose déjà d'un nombre considérable
de fonctions natives mais il est bien sûr possible d'en développer
de nouvelles. Ainsi la fonction suivante:
function inutile($nom) {
return "$nom est un site formidable!";
}
sera appelée ainsi dans un programme PHP:
print inutile("JDN Développeurs);
Mais le PHP ne s'arrête pas là, en permettant
de manipuler des objets (qui sont des instances d'une
classe). Une classe est donc un ensemble d'objets dotés
d'attributs (des variables) et de méthodes (des fonctions).
Ainsi le code suivant définit la classe pc:
class pc {
var $marque;
var $modele;
var $processeur;
var $prixdebase;
var $options;
function prixdevente ($objetpc)
{
$soustotal=0;
while ( list($option,$cout)=each ($objetpc->options)
) {
$soustotal += $cout;
}
return $objetpc->prixdebase + $soustotal;
}
}
Les attributs de pc sont $marque, $modele, etc. Son
unique méthode, prixdevente() (qui calcule le prix
de vente du pc à partir de son prix de base et du prix des
options rajoutées à la configuration initiale).
On déclare une nouvelle instance de
la classe par:
$objetpc = new pc;
On accède à un attribut de
la manière suivante (par exemple):
$objetpc->processeur="Pentium III";
$objetpc->options=array("disqudur30go"=>1500,"lecteurdvdrom"=>1000);
Et on calcule le prix
de vente ainsi:
print $objetpc->prixdevente($objetpc);
Et voilà! Pour plus d'informations
sur le PHP, les adresses suivantes sont très utiles: www.phpfrance.com
(en français) et www.php.net
(en anglais).
|