TUTORIELS 
Introduction à PHP
Découvrez l'un des langages-vedettes du web: intégré au code HTML, orienté-objet, doté d'un grand nombre de fonctions natives (notamment pour la connectivité avec des bases de données), le PHP possède de nombreux atouts.  (8 mars 2001)
 

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&nbsp;
<?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&nbsp;
<?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).

 
[ Jérôme MorlonJDNet
 
Accueil | Haut de page