PHP: Hypertext Preprocessor
Un article de Wikipédia, l'encyclopédie libre.
Cet article fait partie de la série Langages de programmation |
Langages à objets |
C++ - C# Delphi - Eiffel - Java Groovy - Python - Ruby Simula - Smalltalk Visual Basic - WinDev |
Langages impératifs |
APL - ASP - Assembleur BASIC - C - Cobol Forth - Fortran - Logo Pascal - Limbo - Perl - PHP |
Langages fonctionnels |
Haskell - ML/OCaml Lisp/Common Lisp Scheme XSLT |
Langages déclaratifs |
Clips - Prolog |
Langages concurrents |
Ada 95 - Erlang |
Langage de balisage |
HTML - SGML - XML S-expressions |
Voir aussi |
Conception - Codage Tests - Optimisations |
PHP (venant de l'acronyme récursif PHP: Hypertext Preprocessor), est un langage de scripts libre principalement utilisé pour être exécuté par un serveur HTTP, mais il peut fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un langage procédural disposant en version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plate-forme plus qu'un simple langage. En fait il s'agit bien d'une alternative à Java et à DotNet.
Sommaire |
[modifier] Historique
Ce langage a été créé en 1994 par Rasmus Lerdorf pour son site Web. C'était à l'origine une bibliothèque logicielle en Perl dont il se servait pour conserver une trace des visiteurs qui venaient consulter son CV. Au fur et à mesure qu'il ajoutait de nouvelles fonctionnalités, Rasmus a transformé la bibliothèque en une implémentation en langage C, capable de communiquer avec les bases de données et de créer des applications dynamiques et simples pour le World Wide Web. Rasmus décida alors en 1995 de publier son code, pour que tout le monde puisse l'utiliser et en profiter. PHP s'appelait alors PHP/FI (pour Personal Home Page Tools/Form Interpreter). En 1997, deux étudiants, Andi Gutmans et Zeev Suraski, redéveloppèrent le cœur de PHP/FI. Un an plus tard, le résultat donna le Zend Engine, nouveau cœur de PHP/FI, devenu alors PHP: Hypertext Preprocessor en version 3.
En 2002, il était utilisé par plus de 8 millions de sites Web à travers le monde, en 2004 par plus de 15 millions. La version actuelle est la version 5, elle corrige certaines failles et rajoute de nouvelles fonctions et bibliothèques.
La version 5.0.0 de PHP est sortie le 13 juillet 2004 : elle utilise Zend Engine 2 et introduit une programmation orientée objet plus efficace et plus complète, une gestion des erreurs basée sur le modèle des exceptions, ainsi que des fonctionnalités de gestion pour les entreprises. PHP 5 apporte beaucoup de nouveautés, telles que le support de SQLite, qui est un système léger de gestion de bases de données embarqué, au détriment de la bibliothèque cliente de MySQL, plus puissante mais qui n'est désormais plus fournie par défaut, ainsi que des moyens de manipuler des fichiers et des structures XML basés sur libxml2 :
- une API simple nommée SimpleXML,
- une API Document Object Model assez complète,
- une interface XPath utilisant les objets DOM et SimpleXML,
- intégration de libxslt pour les transformations XSLT via l'extension XSL,
- une bien meilleure gestion des objets par rapport à PHP4, avec des possibilités équivalentes à java.
La version actuelle est la 5.2.0 datant du 2 novembre 2006.
[modifier] Qu'est-ce que le langage PHP ?
Le langage PHP est principalement un langage de programmation web côté serveur ce qui veut dire que c'est le serveur (la machine qui héberge le site web en question) qui va interpréter le code PHP et générer du code qui pourra être interprété par un logiciel. Le plus souvent, le code généré est le HTML afin d'être lu par un navigateur mais il peut être utilisé pour d'autres langages ou formats tels que WML, GIF, PDF, etc.
Il a été conçu pour permettre la création d'applications dynamiques, le plus souvent dédiées au web. PHP peut être installé sur les principaux serveurs web du marché, les plus répandus étant IIS et Apache. Ce couplage permet de récupérer des informations issues d'une base de données, d'un système de fichiers (contenu de fichiers et de l'arborescence) ou plus simplement des données envoyées par le navigateur afin d'être interprétées ou stockées pour une utilisation ultérieure.
C'est un langage peu typé et souple et donc facile à apprendre par un débutant mais, de ce fait, des failles de sécurité peuvent rapidement apparaitre dans les applications.
Son utilisation commence avec le traitement des formulaires puis par l'accès aux bases de données. L'accès aux bases de données est aisé une fois l'installation des modules correspondant effectuée sur le serveur. La force la plus évidente de ce langage est qu'il est devenu au fil du temps un incontournable des offres d'hébergement.
Libre, gratuit, simple d'utilisation et d'installation, ce langage nécessite comme tout langage de réseau une bonne compréhension des mécanismes sous-jacents ainsi qu'une connaissance des problèmes de sécurité.
[modifier] Fonctionnement
Sa syntaxe et sa construction ressemblent à celles des langages C++ et Perl, à la différence que le PHP peut être intégré dans du code HTML. On peut considérer le PHP comme une version simplifiée du Perl qui appartient lui-même à la grande famille des descendants du C, ce qui explique les très nombreuses similitudes de syntaxe.
Dans une utilisation Web, l'exécution du code PHP se fait ainsi : lorsqu'un visiteur demande à consulter une page Web, son navigateur envoie une requête à un serveur HTTP. Si la page contient du code PHP, l'interprète PHP du serveur le traite et renvoie du code généré (HTML).
Voici un petit schéma pour illustrer le principe :
L'utilisation la plus répandue est celle qui fait de PHP un générateur de page Web (contenant du code HTML, CSS, JavaScript, etc.). Ce langage permet donc de générer des pages au contenu dynamique (différent en fonction des données passées en paramètres, souvent par le biais de formulaires), mais peut aussi être utilisé comme langage de programmation en ligne de commande sans utiliser de serveur HTTP ni de navigateur. Cette fonctionnalité prend tout son sens dans un environnement de serveur Linux. Pour réaliser un script PHP exécutable, il suffit comme en Perl ou en Bash d'insérer dans le code en première ligne : #!/usr/bin/php sur la plupart des distributions.
Il existe aussi une extension appelée PHP-GTK permettant de créer des applications clientes graphiques sur un ordinateur disposant de la bibliothèque graphique GTK.
PHP possède un grand nombre de fonctions permettant des opérations sur le système de fichiers, la gestion des bases de données, des fonctions de tri et hachage, le traitement de chaînes de caractères, la génération et la modification d'images, des algorithmes de compression...
Le moteur de Wikipédia est écrit en PHP avec une base MySQL. Il s'intègre donc dans une plateforme LAMP.
[modifier] Syntaxe
Un exemple du traditionnel Hello World :
<?php echo 'Hello, World!!'; ?>
Résultat affiché :
Hello, World!!
PHP interprétera uniquement le code qui est délimité par <?php et ?>. Bien que les balises <? et ?> puissent être également utilisées sur une configuration par défaut, elles sont peu recommandées car elles dépendent de la configuration du serveur.
[modifier] Mascotte
PHP est souvent accompagné de l'elePHPant, dessiné par El Roubio. Il s'est inspiré de la ressemblance des lettres PHP avec un éléphant, d'où le nom. El Roubio a aussi inventé la PHPin'up. Toutes ses œuvres sont distribuées sous licence GNU/GPL. Il existe aussi des origamis ElePHPant.
A l'heure actuelle, voici l'allure de l'ElePHPant:
[modifier] Quelques exemples d'application
- Forums de discussion : phpBB, IPB.
- Systèmes de gestion de weblog (blog) : DotClear, WordPress.
- Systèmes de gestion de contenu (appelés aussi CMS) : Drupal, Xoops.
- Administration de bases de données : PhpMyAdmin, PhpPgAdmin.
- Wiki : DokuWiki, WikiNi.
- Cadres d'application : CakePHP, Symfony, etc.
- etc.
[modifier] Plate-forme LAMP
LAMP est un nom usuel pour désigner les plates-formes combinant :
- le système d'exploitation GNU/Linux
- le serveur Web Apache
- le système de bases de données MySQL
- Et bien sûr Php, Perl ou Python
Par extension, sous environnement Windows, on parlera de plate-forme WAMP.
WAMP « intégrés » particulièrement connus :
Sous Mac OS X:
- Mamp (pour Macintosh Apache Mysql Php Phpmyadmin)
- WebServerXKit (pour Macintosh Apache Mysql Php Phpmyadmin Ruby On Rails)
Noter que la plupart de ces plates-formes sont destinées pour le développement d'applications web et non pour la mise en ligne directe de scripts!
[modifier] Voir aussi
[modifier] Articles connexes
- AFUP : Association Française des Utilisateurs de PHP
- Paamayim Nekudotayim : nom de l'opérateur
::
en PHP - Liste des Frameworks PHP : liste des cadres de développement (Frameworks) en PHP
- AJAX
[modifier] Liens externes
[modifier] Sites de référence
- (en) PHP.net : Site officiel de PHP
- (fr) Manuel PHP.net : Manuel du PHP sur le site officiel, en français.
[modifier] Portails spécialisés
- La catégorie PHP de l'annuaire dmoz.
- (fr) La catégorie PHP du portail Developpez.com
- La POO en PHP : ScriptsPHP.org
[modifier] Utilisateurs professionnels
- (en) Zend : La société du PHP, avec (en) Zend Optimizer (gratuit) et le (en) PHP 5 InfoCenter
- (fr) AFUP (Association Française des Utilisateurs de PHP) : livres blancs, conférences sur l'utilisation du PHP en milieu professionnel
- (fr) AFUP - Livre blanc du PHP en entreprise
[modifier] Utilisateurs débutants
- (fr) Le Site du Zéro, apprendre PHP à partir de rien
- (fr) PHP Débutant
- (fr) Atelier PHP, apprendre le langage php, cours, exercices
- (fr) Jeunes Webmasters, scripts php pour les débutants
[modifier] Forums d'entraide
[modifier] Livres
- Laurent Guédon, Damien Heute, Thomas Heute, Pierre-Emmanuel Muller, PHP 5, Micro Application, coll. « La Bible Micro Application », 19 01 2005, 1320 p. (ISBN 2-7429-3608-4) [présentation en ligne]
- Pratique de MySQL et PHP, 3e Edition - Edition O'Reilly ISBN 2-84177-338-8
- PHP 5, 3e Edition - Edition Campus Press ISBN 2-7440-2100-8
- PHP 5 et MySQL 5, 1e Edition - Edition Micro Application ISBN 2-7429-6676-5
- PHP 5 Cours et exercices, 1e Edition - Edition Eyrolles ISBN 2-212-11407-9
- PHP et MySQL pour les nuls, 1e Edition - Edition First Interactive ISBN 2-84427-832-9
- PHP 5 Avancé, 3e Edition - Edition Eyrolles ISBN 2-212-12004-4
- Le grand livre de PHP 5, 1e Edition - Edition Dunod ISBN 2-10-049118-0
|
|