PHP
Le langage PHP (PHP Hypertext Preprocessor, acronyme récursif) est un langage utilisé pour la programmation de sites Web, c'est le langage le plus répandu actuellement pour la réalisation des sites Web, une belle réussite pour un logiciel libre (cf. http://www.journaldunet.com/developpeur/algo-metho...).
PHP est un langage dit de "scripting" permettant de générer des pages HTML dynamiques, c'est-à-dire modifiables en fonction des interactions de l'utilisateur et des éventuelles données historiques associées à l'utilisateur et à la session courante.
Au niveau du langage informatique, il s'agit d'un langage interprété orienté objet avec une syntaxe apparentée à celle du langage "C" pour la partie procédurale.
Quelques caractéristiques :
- typage automatique des variables
- gestion automatique de la mémoire (allocations/libérations)
- nom des variables préfixé par le caractère "$"
- utilisation de tableaux indexés et de tableaux associatifs
- sous-programmes et fonctions, récursivité
- objets et classes d'objets (héritage unique)
- bibliothèque très complète de fonctions
En raison de la richesse de ses bibliothèques, on désigne souvent PHP comme une plate-forme plus qu'un simple langage.
Bien que PHP soit un langage informatique complet, il est rarement utilisé en tant que langage algorithmique isolé, il est le plus souvent utilisé en scripting du côté des serveurs Web, et dans ce cas, en association avec un serveur HTTP (Hyper Text Transport Protocol).
Fonctionnement du couple HTTP-PHP :
1) Le client (navigateur) demande une page HTML au serveur HTTP.
2) Le serveur HTTP transmet la demande à son interpréteur PHP.
3) L'interpréteur PHP construit la page HTML réponse à partir d'une page PHP dynamique (correspondant à cette page HTML), des éventuelles données saisies par l'utilisateur (client), des données applicatives et des éventuelles données historiques concernant l'utilisateur ou la session courante.
4) L'interpréteur PHP transmet la page réponse HTML au serveur HTTP, lequel la retransmet au client.
PHP permet comme les langages de la lignée shell-awk-perl de transformer n'importe quel texte source en n'importe quel texte cible (ou presque) :
-
Il est possible à partir du PHP de générer toutes les balises HTML (idem pour les feuilles de style CSS) et créer des pages dynamiques Web sans aucun code HTML, avec l'avantage de disposer d'un langage de programmation évolué (PHP) permettant l'utilisation de variables.
-
Il est possible à partir du PHP de générer des documents dans d'autres formats texte (texte brut, XML, CSV/TSV) ou binaire (graphiques avec les bibliothèques GD et jpGraph, fichiers pour tableurs, fichiers PDF, ...).
Le code source PHP est portable à l'identique sur toutes les plateformes supportant un interpréteur PHP (Unix, Windows, etc...).
Par contre, le langage PHP, enfant de l'Internet, évolue constamment avec ce dernier et des différences significatives existent entre les grandes versions (4, 5, 5.x) et obligent les programmeurs à maintenir régulièrement leurs développements en fonction des versions PHP mises en place par les hébergeurs.
Ce langage peut être utilisé de 3 façons :
1) En mode interpréteur de commandes (commandes en lignes ou fichiers de commandes), en fait le plus souvent pour cette utilisation on préfèrera utiliser le langage Perl.
2) En mode couplé avec un serveur Apache (ou autre serveur HTTP) pour la programmation Web, il vous faudra installer vous-même l'interface SAPI (Server Abstraction API) pour interconnecter PHP et Apache, c'est pourquoi nous vous conseillons plutôt la solution 3.
3) En utilisant un produit intégré qui fournit le couplage HTTP/PHP et propose d'autres fonctionnalités comme l'implémentation d'une base de données relationnelle. Ces produits intégrés portent des noms génériques du type "AMP", "LAMP" ou "XAMP" (AMP pour Apache/MySql/PHP et "X" pour Linux et "X" pour Unix).
Un système de type AMP est décrit dans la fiche ressource Xampp-serveur-web-complet et un complément AMP sera fourni par la suite sous la forme d'une fiche complémentaire.
Difficultés :
Difficultés classiques des développements Web, ne pas mélanger le PHP et le HTML, c'est-à-dire d'une part ne pas mélanger fonctionnellement les traitements et la présentation et d'autre part ne pas constamment imbriquer le code PHP et le code HTML, ce qui rend les programmes sources illisibles et donc difficilement maintenables.
Solutions :
- Programmer de façon très claire et très structurée !
- Utiliser des frameworks MVC : CakePHP, Symfony, ...
- Utiliser des bibliothèques de "Templates" comme les logiciels libres "Smarty" ou "PhpLib".
- Créer ses propres fonctions "Templates".