Niveau Niveau débutant

PHP : on reprend tout à zéro

Articledéveloppement

Publié par le , mis à jour le (39063 lectures)

php développement

XHTML, CSS, JavaScript,... et PHP : tout cela peut facilement embrouiller le débutant. Néanmoins la création d'un site web professionnel nécessite la maitrise de nombreux domaines, il est donc utile de revenir sur les principaux mécanismes employés lors de l'utilisation de PHP. Ceux-ci nécessitent d'être correctement compris et assimilés si l'on souhaite profiter du potentiel offert par les langages côté serveur.

Logo PHP

Dans cet article, nous nous proposons de ne pas aborder la programmation proprement dite, mais de reprendre les bases nécessaires à la bonne compréhension et donc à l'utilisation de PHP. Nous décrirons de quelle façon PHP intervient lors de la consultation du site.

Un peu de théorie

Il est nécessaire de bien comprendre le fonctionnement de PHP : il diffère à la fois du couple HTML / CSS et bien qu'il s'agisse d'un langage de programmation à part entière, son fonctionnement est fort éloigné d'un programme "classique", écrit en Java ou en C++ par exemple.

Les bases du HTTP

Que se passe-t-il lorsque vous entrez l'adresse d'une page dans votre navigateur (agent utilisateur) ?

L'agent utilisateur va établir une requête en utilisant le protocole HTTP indiquant entre autre la page demandée. Cette requête, une fois arrivée au serveur transmet l'adresse (URI) demandée (ex : http://www.nomdusite.com/repertoire/document.html). Cette demande est traitée par un serveur web (tel qu'Apache ou IIS) qui va l'interpréter, trouver le fichier demandé et le renvoyer en réponse HTTP. Dans le cas d'une requête demandant une page HTML "classique", celle-ci est trouvée (ou non) par le serveur web sur le disque dur du serveur puis se voit simplement renvoyée vers le navigateur du visiteur.

Ainsi, la visite d'un site ne se fait que par "morceau", page après page. Le serveur web et le client ne sont en relation qu'au moment où une requête est interprétée par le serveur web. Une fois que la page a été envoyée au client, le serveur web perd tout contact avec celui-ci. Ce mécanisme devient plus complexe lors de l'emploi d'un langage de programmation interprété côté serveur.

 

HTTP Schema

Langage côté serveur

Cette expression désigne un langage dont l'exécution à lieu sur le serveur et non sur la machine du "client" comme le sont les scripts JavaScript, les animations Flash ou tout simplement les rendus CSS de la page HTML : logique. Toutefois cela a de nombreuses implications :

  • l'éxécution du script est indépendante du client/navigateur : la machine de celui-ci ou son agent utilisateur n'interviennent pas ;
  • le visiteur ne peut pas refuser l'éxécution du script, comme il peut le faire pour JavaScript en le désactivant, ou avec dans le cas d'une animation Flash s'il ne possède pas le plug in ;
  • les paramètres d'exécution dépendent de la configuration du serveur web : il doit implémenter le "moteur" du langage côté serveur employé (PHP 4 ou 5, ASP, …) ;
  • le script n'est pas en relation directe avec le client : celui-ci doit lui passer ses données (variables diverses) par un mécanisme particulier s'il veut qu'elles soient disponibles au moment de l'éxécution ;
  • le client n'a aucune idée du traitement effectué : une fois le script exécuté, le document renvoyé ne contient plus le code PHP, il s'agit d'un simple document HTML, CSS ou autre. L'exécution du script est donc totalement transparente pour l'agent utilisateur.

Exécution d'une page PHP

PHP étant un langage exécuté côté serveur, voyons comment l'exécution d'une page contenant un script PHP se déroule. Imaginons une requête demandant au serveur web de livrer à l'agent utilisateur une page quelconque contenant du PHP. Il peut s'agir d'un document (X)HTML dont l'URI est entrée directement par le visiteur ou d'une feuille de style CSS appelée par l'agent utilisateur lors de la lecture d'une page HTML.

La configuration du serveur fait en sorte qu'il reconnaisse certaines extensions de fichiers (pour un fichier PHP il s'agit le plus souvent de .php). Quand le serveur web à affaire à ce type de fichier, son comportement diffère de celui que nous avons détaillé plus haut dans le cas d'une page "classique". Une fois le fichier trouvé, il va d'abord le passer à l'interpréteur correspondant (PHP dans notre cas). Celui-ci va traiter le script et renvoyer les données en sortie au serveur web, qui va lui-même les renvoyer au client.

Quelles sont ces données renvoyées au client ? Il s'agit tout simplement de ce que la fonction de la page implique : s'il s'agit d'un document (X)HTML, ce sera du (X)HTML, mais si la page est un fil RSS, les données renvoyées seront des données XML. Ainsi, une fois la page envoyée au client, il n'est plus question de PHP. C'est donc à vous de faire en sorte que votre script PHP renvoie les données correspondant au type de page générée et le cas échéant que ces données soient valides.

Quel a été le rôle de PHP ? Celui-ci a servi à générer les données qui ont été renvoyées au client. Par exemple, nous pouvons établir un script PHP qui va générer une page html en assemblant plusieurs fichiers, ou en insérant le contenu issu d'une base de données dans une page html existante.

Ainsi, le traitement effectué par PHP ne sert que d'intermédiaire : le client demande une page particulière (page html, feuille de style css, etc), le serveur web interprète la demande et lance l'exécution d'un script qui va permettre la génération de la page avant de la renvoyer au client. Ainsi, pour le client il n'est pas question de PHP : une fois la page renvoyée elle ne contient plus de code PHP, mais uniquement des données d'un type particulier (une page html le plus souvent).

Ce mécanisme implique également que le script s'arrête une fois la page générée et renvoyée. Prennons l'exemple de la consultation d'un forum : il ne s'agit pas d'un processus continu, où un script PHP s'exécute constamment. A chaque fois, le script reprend depuis le début, génère une page et s'arrête. Entre chacune de ses éxécutions (ou entre l'exécution de différents script des pages d'un même site), un script PHP ne garde aucun "souvenir" du client. Chaque exécution est totalement indépendantes des précédentes (nous verrons plus loin qu'il y a quand même moyen de garder une "trace" des exécutions précédentes).

PHP dans la pratique

Mise en place d'un script

Un script PHP peut prendre place n'importe où à l'intérieur d'un document. Lorsque l'interpréteur PHP lit le fichier, il envoie en sortie tout le contenu qu'il trouve avant un script, ensuite le script est exécute (et renvoie peut être lui même des données). Une fois le script terminé, l'interpréteur continue de parcourir le fichier de la même façon et exécute les éventuels autres script présents dans la suite du document.

Un script doit être encadré par un balisage particulier afin d'être reconnu comme tel. Le balisage suivant est le plus courant (et recommandé) afin de définir le début et la fin d'un script :

<?php

   // Ceci est un commentaire :
   // Ici, le script PHP...

?>

Différentes utilisations de PHP

Tout cela est bien beau, mais à quoi peut bien servir PHP ?

Nous pouvons faire une liste des utilisations les plus courantes :

  • Traitement de formulaire: il est possible de traiter facilement les données envoyées via un formulaire HTML, par exemple, les données peuvent être traitées et insérées dans une base de données ou envoyées par email à l'auteur du site ;
  • Utilisation d'un modèle de page : PHP est très souvent utilisé pour construire dynamiquement les pages sur base de modèles / template. Le contenu d'une page particulière est inséré dynamiquement au sein d'une page servant de modèle ;
  • Gestion d'un panier d'achat : il est possible de suivre les visiteurs de page en page et ainsi de suivre leurs achats. Comme nous l'avons décrit plus haut, la consultation d'un site se fait "par bond", le serveur web ne gardant pas trace des précédentes pages consultées. PHP permet par l'utilisation des variables de session de contourner ce problème.