- PHP
-
Pour les articles homonymes, voir PHP (homonymie).
PHP
Apparu en 1994 Auteur Rasmus Lerdorf Développeur The PHP Group Dernière version 5.3.8 (23 août 2011) [+/−] Paradigmes Programmation impérative
orientée objet
fonctionnelleTypage Typage dynamique
faibleInfluencé par Perl
C/C++
Java[1]Système d'exploitation Multiplate-forme Licence Licence PHP[2] Site web www.php.net PHP (sigle de PHP: Hypertext Preprocessor[3]) est un langage de scripts libre[4] principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP[3], mais pouvant également 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 impératif disposant depuis la version 5 de fonctionnalités de modèle objet complètes[5]. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plate-forme plus qu'un simple langage.
Sommaire
Historique
Le langage PHP fut 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 des bases de données et de créer des applications dynamiques et simples pour le 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. Ce travail aboutit un an plus tard à la version 3 de PHP, devenu alors PHP: Hypertext Preprocessor. Peu de temps après, Andi Gutmans et Zeev Suraski commencèrent la réécriture du moteur interne de PHP. Ce fut ce nouveau moteur, appelé Zend Engine - le mot Zend est la contraction de ZEev et aNDi - qui servit de base à la version 4 de PHP[6]
En 2002, PHP est utilisé par plus de 8 millions de sites Web à travers le monde[7] et en 2007 par plus de 20 millions [8].
Un indicateur paradoxal de la popularité de PHP est le nombre de failles de sécurité concernant des applications PHP et listées avec un identifiant CVE sur la National Vulnerability Database, base de données américaine. Ces failles représentent 12% du total en 2003, 20% en 2004, 28% en 2005, 43% en 2006, 36% en 2007, 34,8% en 2008, 29,9% en 2009, 27,2% en 2010. Plus d'un quart des vulnérabilités répertoriées sur cette base concerne des applications PHP, plus d'un tiers ces dernières années, et la plupart peuvent être exploitées à distance[9]. Ces vulnérabilités s'expliquent par de mauvaises habitudes de programmation (souvent un défaut de validation des entrées) alliées à des caractéristiques douteuses du langage lui-même (par exemple register globals, maintenant déconseillé[10]).
La version actuelle est la version 5, sortie le 13 juillet 2004[11]. Elle utilise Zend Engine 2 et introduit un véritable modèle objet, une gestion des erreurs fondé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 activée 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 à PHP 4, avec des possibilités qui tendent à se rapprocher de celles de Java.
La dernière mise à jour est la 5.3.8 datant du 23 août 2011[12].
La version 4.4.x n'est plus maintenue depuis le 31 décembre 2007[11],[13]. Seuls les patchs de sécurité critiques ont encore été développés jusqu'à la date du 8 août 2008[13].
La branche 5.2 n'est plus non plus supportée depuis le 16 décembre 2010 avec la version 5.2.16 et il est recommandé à tous les utilisateurs de migrer vers la branche 5.3. Seules des corrections de sécurité sont assurées pour les récalcitrants.
La prochaine version : PHP 6 est en développement.
Historique des versions
Code des couleurs Rouge Ancienne version, non supportée Vert Version actuelle, supportée Bleu Version à venir Version majeure Version mineure Date de sortie Notes 1.0 1.0.0 8 juin 1995 Appelé officiellement "Personal Home Page Tools (PHP Tools)", outils pour page personnelle. C'est la première apparition du nom "PHP"[14]. 2.0 2.0.0 12 novembre 1997 Considéré par son créateur comme le plus simple outil de création de pages web dynamiques.[réf. nécessaire] 3.0 3.0.0 6 juin 1998 Passage d'une personne à une équipe de développeurs. Zeev Suraski et Andi Gutmans réécrivent la base de cette version[14]. 4.0 4.0.0 22 mai 2000 Ajoute système d'analyseur syntaxique plus avancé appelé le Zend engine. Ce moteur procède en deux étapes d'analyse puis d'exécution.[15] 4.1.0 10 décembre 2001 Introduit les superglobals ( $_GET
,$_POST
,$_SESSION
, etc.)[15]4.2.0 22 avril 2002 Désactive register_globals par default. Les données en provenance du réseau ne sont plus insérées directement dans l'espace de nom global, réduisant ainsi les possibilités de failles de sécurité[15] 4.3.0 27 décembre 2002 Introduit le CLI, en addition au CGI[15]. 4.4.0 11 juillet 2005 Ajout du manuel (pages accessibles par la commande man
) pour les scriptsphpize
etphp-config
[15].4.4.8 3 janvier 2008 Correction de bugs et de failles de sécurité. Devait être la dernière correction de PHP 4.4. Mises à jour de sécurité uniquement jusqu'au 8 août 2008 si nécessaire[16]. 4.4.9 7 août 2008 Plus de sécurité et résolution de bugs. Dernière version de PHP 4.4[17],[18]. 5.0 5.0.0 13 juillet 2004 Zend Engine II avec un nouveau modèle objet[19]. 5.1.0 24 novembre 2005 Amélioration de performances par l'introduction de variables de compilation dans un moteur PHP repensé[19]. 5.2.0 2 novembre 2006 Activation par défaut de l'extension «filter»[19]. 5.2.8 8 décembre 2008[20] Correction urgente d'un bug[20] 5.2.9 26 février 2009[21] 5.2.10 18 juin 2009[22] 5.2.11 17 septembre 2009[23] 5.2.12 17 décembre 2009[24] 5.2.13 25 février 2010[25] 5.2.14 22 juillet 2010[26] Dernière version de la branche 5.2, hors correction de problèmes concernant la sécurité. 5.2.15 9 décembre 2010[27] 5.2.16 16 décembre 2010[28] Arrêt du support de la branche 5.2 5.2.17 6 janvier 2011[29] Correction d'un bug de stabilité critique. 5.3.0 30 juin 2009[30] Support des espaces de noms; Late Static Bindings (résolution statique à la volée), étiquettes de saut (goto limité), fermetures, Native PHP archives (phar), Ramasse-miettes de références cycliques, connexion persistante avec MySQLi, sqlite3, Ajoute fileinfo en tant que remplacement de mime_magic pour un meilleur support de MIME, raccourci pour l’opérateur ternaire (?:), fonctions anonymes, nombreuses corrections de bug[31]... 5.3.1 19 novembre 2009[32] Correction d'un problème au niveau du téléchargement de fichier pouvant être utilisé pour effectuer une attaque par déni de service[33]. 5.3.2 4 mars 2010[34] Correction d'un grand nombre de bugs[35] 5.3.3 22 juillet 2010[36] Introduit PHP-FPM[37] 5.3.4 10 décembre 2010[38] Mise à jour de sécurité et correction de bugs 5.3.5 6 janvier 2011[29] Correction d'un bug de stabilité critique. 5.3.6 17 mars 2011[29] Mise à jour de sécurité et correction de bugs. 5.3.7 18 aout 2011[39] Mise à jour de sécurité et correction de bugs. 5.3.8 23 aout 2011[40] Correction express de deux bug de sécurité introduits dans PHP 5.3.7. 5.4.0 2011 Support des traits; Support de Dtrace; Ajout d'un serveur HTTP destiné au développement[41]. Suppression des extensions magic quotes, safe_mode, register_globals et register_long_array 6.0 6.0.0 Retardée[42] Support de Unicode; suppression de l'extension regex; Alternative PHP Cache Présentation
Le langage PHP est utilisé principalement en tant que langage de script côté serveur, ce qui veut dire que c'est le serveur (la machine qui héberge la page Web en question) qui va interpréter le code PHP et générer du code (constitué généralement d'XHTML ou d'HTML, de CSS, et parfois de JavaScript) qui pourra être interprété par un navigateur. PHP peut également générer d'autres formats en rapport avec le Web, comme le WML, le SVG, le format PDF, ou encore des images bitmap telles que JPEG, GIF ou PNG.
Il a été conçu pour permettre la création d'applications dynamiques, le plus souvent dédiées au Web. PHP est très majoritairement installé sur un serveur Apache, mais peut être installé sur les autres principaux serveurs HTTP du marché, par exemple IIS. 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 apparaître dans les applications. Pragmatique, PHP ne s'encombre pas de théorie et a tendance à choisir le chemin le plus direct. Néanmoins, le nom des fonctions (ainsi que le passage des arguments) ne respecte pas toujours une logique uniforme, ce qui peut être préjudiciable à l'apprentissage.
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 a permis au fil du temps la réalisation aisée de problèmes autrefois compliqués et est devenu par conséquent un composant incontournable des offres d'hébergements.
Il est multiplate-forme : autant sur Linux qu'avec Windows il permet aisément de reconduire le même code sur un environnement à peu près semblable (prendre en compte les règles d'arborescences de répertoires qui peuvent changer).
Libre, gratuit, simple d'utilisation et d'installation, ce langage nécessite comme tout langage de programmation une bonne compréhension des principales fonctions usuelles ainsi qu'une connaissance aiguë des problèmes de sécurité liés à ce langage.
La version 5.3 a introduit de nombreuses fonctionnalités : les espaces de noms – un élément fondamental de l'élaboration d'extensions, de bibliothèques et de frameworks structurés –, les fonctions anonymes, les fermetures, etc.
La version 6 introduira en interne la bibliothèque ICU donnant au langage la faculté de traiter Unicode de manière native.
Fonctionnement
PHP appartient à la grande famille des descendants du C, dont la syntaxe est très proche. En particulier, sa syntaxe et sa construction ressemblent à celles des langages Java et Perl, à la différence que du code PHP peut facilement être mélangé avec du code HTML au sein d'un fichier PHP.
Dans une utilisation Web, l'exécution du code PHP se déroule ainsi : lorsqu'un visiteur demande à consulter une page Web, son navigateur envoie une requête au serveur HTTP correspondant. Si la page est identifiée comme un script PHP (généralement grâce à l'extension
.php
), le serveur appelle l'interprète PHP qui va traiter et générer le code final de la page (constitué généralement d'HTML ou de XHTML, mais aussi souvent de CSS et de JS). Ce contenu est renvoyé au serveur HTTP, qui l'envoie finalement au client.Ce schéma explique ce fonctionnement :
Une étape supplémentaire est souvent ajoutée : celle du dialogue entre PHP et la base de données. Classiquement, PHP ouvre une connexion au serveur de SGBD voulu, lui transmet des requêtes et en récupère le résultat, avant de fermer la connexion.
L'utilisation de PHP en tant que générateur de pages Web dynamiques est la plus répandue, mais il peut aussi être utilisé comme langage de programmation ou de script en ligne de commande sans utiliser de serveur HTTP ni de navigateur. Il permet alors d'utiliser de nombreuses fonctions du langage C et plusieurs autres sans nécessiter de compilation à chaque changement du source.
Pour réaliser en Linux/UNIX un script PHP exécutable en ligne de commande, il suffit comme en Perl ou en Bash d'insérer dans le code en première ligne le shebang :
#! /usr/bin/php
[43]. Sous un éditeur de développement comme SciTE, même en Windows, une première ligne<?php
suffit, si le fichier possède un type .php.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+, ou encore son alternative WinBinder.
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, MediaWiki, est écrit en PHP et interagit avec une base MySQL. Il s'intègre donc dans une plateforme LAMP.
Syntaxe
Hello world
Quelques exemples du traditionnel Hello world :
<?php // forme la plus simple, recommandée echo 'Hello World'; ?>
echo étant une structure du langage, il est possible – et même recommandé – de ne pas mettre de parenthèses, ce qui lui permet en plus d'accepter plusieurs paramètres :
<?php echo 'Hello ', 'World'; ?>
Résultat affiché :
Hello World
Balises
Le code PHP doit être inséré entre des balises <?php et ?>.
Il existe des notations raccourcies : <? et ?>, voire la notation ASP <% et %>, mais celles-ci sont déconseillées, car elles peuvent être désactivées dans la configuration du serveur : la portabilité du code est ainsi réduite. De plus, PHP 6 interdira ces notations, ce qui compromettra la compatibilité des scripts utilisant ces balises avec les futures versions de PHP[44].
Il existe aussi cette syntaxe, peu courante : <script language="php"> et </script>.
Instructions
Les instructions sont séparées par des ";" (il n'est pas obligatoire après la dernière instruction) et les sauts de ligne ne modifient pas le fonctionnement du programme. Il serait donc possible d'écrire :
<?php echo 'Hello World'; echo 'Comment allez-vous ?'; echo 'Il fait beau non ?' ?>
Pour des raisons de lisibilité, il est néanmoins recommandé d'écrire une seule instruction par ligne. Il est aussi préférable d'écrire le dernier ";".
Structures de contrôle
Le code PHP est composé par des appels à des fonctions, dans le but d'attribuer des valeurs à des variables, le tout encadré dans des conditions, des boucles. Exemple :
<?php // la fonction strtolower renvoie en minuscules la chaîne de caractères passée en paramètre $lang = strtolower($_POST['lang']); if ($lang === 'fr') { echo 'Vous parlez français !'; } elseif ($lang === 'en') { echo 'You speak English!'; } else { echo 'Je ne vois pas quelle est votre langue !'; } ?>
Une condition est appliquée quand l'expression entre parenthèses est évaluée à 'true', et elle ne l'est pas dans le cas de 'false'. Sous forme numérique, 0 représente le 'false', et 1 (et tous les autres nombres) représentent le 'true'.
Le code précédent pourrait aussi être écrit de cette manière :
<?php $lang = strtolower($_POST['lang']); $is_lang_fr = $lang === 'fr'; $is_lang_en = $lang === 'en'; if ($is_lang_fr) { echo 'Vous parlez français !'; } elseif ($is_lang_en) { echo 'You speak English!'; } else { echo 'Je ne vois pas quelle est votre langue !'; } ?>
Ici on teste l'égalité entre $lang et "fr", mais pas directement dans le if : le test retourne un boolean (c'est-à-dire soit true, soit false) qui est stocké dans la variable $is_lang_fr. On entre ensuite cette variable dans le if et celui-ci, selon la valeur de la variable, effectuera ou non le traitement.
Aussi, pour les codes précédents, les caractères "{" et "}" délimitant les blocs if, elseif et else ont été mis. Mais dans vos codes s'il n'y a qu'une instruction, ils sont facultatifs pour la seule raison que ces blocs ne contiennent qu'une instruction.
Génération de code HTML
On peut tout à fait générer du code HTML avec le script PHP, comme ceci par exemple :
<?php $nom = 'Albert'; echo '<div>Bonjour ', $nom, ' !</div>'; ?>
Il est également possible d'utiliser une syntaxe alternative pour la structure if/else :
<?php $nomsAutorises = array('Albert', 'Bertrand'); $nomEnCours = 'Eve'; ?> <?php if (in_array($nomEnCours, $nomsAutorises)) : ?> <!-- code HTML --> <p>Bonjour <?php echo $nomEnCours ?> !</p> <?php else : ?> <!-- code HTML --> <p>Vous n'êtes pas un utilisateur autorisé !</p> <?php endif ?>
Cependant, l'ouverture et la fermeture multiples de balises php instancie autant de fois que nécessaire le moteur de parsing de PHP.
La manière la plus performante de générer du code HTML sera de concaténer l'intégralité du code HTML dans une variable et de réaliser un echo de la variable en fin de fichier.
<?php $out = ''; // On fait des echos $out .= 'a','b','c',"\n"; $out .= 'd','e','f',"\n"; // On affiche le contenu des echos echo $out; ?>
Dans le cas où l'utilisateur aura préféré l'utilisation de la commande echo à la concaténation, il lui sera possible de capturer le flux en utilisant les fonctions ob_start() et ob_get_flush();
<?php // On place le flux dans un buffer ob_start(); // On fait des echos echo 'a','b','c',"\n"; echo 'd','e','f',"\n"; require_once 'pouet.php'; // Plein de echos dans ce fichier // On stoppe la mise en buffer, on récupère son contenu et on met le buffer à vide (pour une éventuelle prochaine bufferisation) $out = ob_get_flush(); // On affiche le contenu du buffer echo $out; ?>
PHP, tout comme JavaScript, permet aussi de construire un modèle objet de document (DOM)[45], ce qui permet de créer ou modifier un document (X)HTML sans écrire de HTML, comme le montre l'exemple suivant :
<?php $doctype=DOMImplementation::createDocumentType('html',"-//W3C//DTD HTML 4.01//EN","http://www.w3.org/TR/html4/strict.dtd"); $dom=DOMImplementation::createDocument(null,"html",$doctype); $html=$dom->documentElement; $html->head=$dom->createElement("head"); $html->appendChild($html->head); $html->head->title=$dom->createElement("title"); $html->head->title->nodeValue="Exemple de HTML"; $html->head->appendChild($html->head->title); $html->head->charset=$dom->createElement("meta"); $html->head->charset->setAttribute("http-equiv", "Content-Type"); $html->head->charset->setAttribute("content", "text/html; charset=utf-8"); $html->head->appendChild($html->head->charset); $html->body=$dom->createElement("body"); $html->appendChild($html->body); $html->body->p=$dom->createElement("p"); $html->body->p->nodeValue="Ceci est un paragraphe."; $html->body->appendChild($html->body->p); $html->body->p->br=$dom->createElement("br"); $html->body->p->appendChild($html->body->p->br); $html->body->p->a=$dom->createElement("a"); $html->body->p->a->nodeValue="Ceci est un lien."; $html->body->p->a->setAttribute("href", "cible.html"); $html->body->p->appendChild($html->body->p->a); print($dom->saveHTML()); ?>
Qui crée le code HTML suivant :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Exemple de HTML</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body><p>Ceci est un paragraphe.<br /><a href="cible.html">Ceci est un lien.</a></p></body> </html>
Programmation orientée objet (POO)
Comme en C++, les versions actuelles de PHP (à partir de PHP 5) permettent de programmer orienté objet, en créant des classes contenant des attributs et des méthodes, des instances de classes. L'héritage entre les classes existe aussi. Voici un exemple de création d'une classe :
<?php class Perso { const PV_initial = 2000 ; private $PV ; public function __construct($type = 'N/A', $PV = 'N/A') { // Paramètres optionnels if (!is_numeric($PV) || !($PV > 0 && $PV < 100000000)) $this->PV = self::PV_initial; else $this->PV = $PV ; } public function get_pv() { // Accesseurs return $this->PV ; } public function is_dead(){ return $this->PV == 0 ; } } // Création d'une classe enfant de Perso class Magicien extends Perso { private $magie ; } // Création d'une instance de classe $perso = new Perso(1000); // utilisation de l'objet echo "Votre personnage a {$perso->get_pv()} de PV"; // Constantes de classes echo 'Le PV par défaut attribué à un nouveau personnage est de ', Perso::PV_initial; // Destruction de l'objet unset($perso); ?>
Mascotte
PHP est souvent accompagné de l'éléPHPant, dessiné par El Roubio[46]. Il s'est inspiré de la ressemblance des lettres PHP avec un éléphant, d'où le nom. Toutes ses œuvres sont distribuées sous licence GNU GPL. Il existe aussi des origamis et des peluches ÉléPHPant[47].
Quelques exemples d'application
- Wiki (MediaWiki, WikiNi, DokuWiki...)
- forum (phpBB, IPB, punBB...)
- Systèmes de gestion de blog (Dotclear, WordPress...)
- Systèmes de gestion de contenu (appelés aussi CMS) (Spip, ExpressionEngine, Drupal, Xoops, Joomla...)
- Administration de bases de données (phpMyAdmin, phpPgAdmin, Adminer, Eskuel...)
- Frameworks (Zend Framework, CodeIgniter, CakePHP, Symfony, etc.)
- Logiciel ECM (Dynacase Platform)
- Logiciel BPM (Dynacase Platform)
- E-commerce (Magento, osCommerce, PrestaShop, etc.)
Différentes plates-formes
Un serveur Web en architecture trois tiers est composé d'un système d'exploitation, un serveur HTTP, un langage serveur et enfin un système de gestion de base de données (SGBD), cela constituant une plate-forme.
Dans le cas de PHP comme langage serveur, les combinaisons les plus courantes sont celles d'une plateforme LAMP (pour Linux Apache MySQL PHP) et WAMP (Windows Apache MySQL PHP). Une plate-forme WAMP s'installe généralement par le biais d'un seul logiciel qui intègre Apache, MySQL et PHP, comme par exemple EasyPHP, VertrigoServ, WampServer ou UwAmp. Il existe le même type de logiciels pour les plates-formes MAMP (Mac OS Apache MySQL PHP), à l'exemple du logiciel MAMP.
Il existe d'autres variantes, par exemple les plates-formes LAPP (le M de MySQL est remplacé par le P de PostgreSQL) ou encore le logiciel XAMPP (Apache MySQL Perl PHP ; le X indique que le logiciel est multiplate-forme), un kit de développement multiplate-forme.
On peut décliner une grande variété d'acronymes sous cette forme. Des confusions peuvent parfois exister entre la plate-forme en elle-même et le logiciel permettant de l'installer, si elles ont le même nom. Il faut également remarquer que la grande majorité des logiciels « tout en un » sont destinés au développement d'applications Web en local, et non à être installés sur des serveurs Web. Une exception à cette règle est peut-être Zend Server, le serveur distribué par Zend Technologies, qui est prévu pour fonctionner aussi bien en environnement de développement que de production.
Accélération
PHP est à la base un langage interprété, ce qui est au détriment de la vitesse d'exécution du code. Sa forte popularité associée à son utilisation sur des sites Web à très fort trafic (Yahoo, Facebook) ont amené un certain nombre de personnes à chercher à améliorer ses performances pour pouvoir servir un plus grand nombre d'utilisateurs de ces sites Web sans nécessiter l'achat de nouveaux serveurs.
La réécriture du cœur de PHP ayant abouti au Zend Engine pour PHP 4 puis le Zend Engine 2 pour PHP 5 sont des optimisations. Le Zend Engine compile en interne le code PHP en bytecode exécuté par une machine virtuelle. Les projets open source APC et eAccelerator fonctionnent en tant que cache pour accélérer encore un peu la génération des pages Web.
Il existe également des projets pour compiler du code PHP :
- Roadsend et phc compilent du PHP en C,
- Quercus compile du PHP en bytecode Java exécutable sur une machine virtuelle Java,
- Phalanger compile du PHP en Common Intermediate Language exécutable sur le Common Language Runtime du framework .NET.
- HipHop for PHP transforme du PHP en C++ qui est ensuite compilé en code natif. Ce projet open source a été démarré par Facebook[48].
Notes et références
- Manuel PHP – Préface
- source
- Manuel PHP : Préface sur PHP.net. Consulté le 7 novembre 2007
- (en) La licence de PHP est reconnue libre par la Free Software Foundation. Consulté le 7 novembre 2007
- Nouveau modèle objet de PHP 5 sur PHP.net. Consulté le 7 novembre 2007
- Histoire de PHP sur PHP.net. Consulté le 7 novembre 2007
- (en) Netcraft web Server Survey - février 2002. Consulté le 7 novembre 2007
- http://www.php.net/usage.php
- Vulnérabilités liées à PHP sur la National Vulnerability Database
- Register Globals
- (en) Historique des sorties de PHP sur PHP.net. Consulté le 7 novembre 2007
- (en) Dernière sortie de PHP en date sur PHP.net. Consulté le 10 novembre 2007
- (en) PHP 4 end of life announcement sur PHP.net. Consulté le 7 novembre 2007
- (en) History of PHP, The PHP Group
- (en) PHP: PHP 4 ChangeLog, The PHP Group, 2008-01-03. Consulté le 2008-02-22
- (en)PHP: PHP 4.4.8 Release Announcement
- (en)PHP: Downloads
- (en)PHP: PHP 4.4.9 Release Announcement
- (en)PHP: PHP 5 ChangeLog, The PHP Group, 2007-11-08. Consulté le 2008-02-22
- (en)PHP: News Archive - 2008
- (en)PHP 5.2.9 Released!
- (en)PHP 5.2.10 Released!
- (en)PHP 5.2.11 Released!
- (en)PHP 5.2.12 Released!
- (en)PHP 5.2.13 Released!
- (en)PHP 5.2.14 Released!
- (en)PHP 5.2.15 Released!
- (en)PHP 5.2.16 Released!
- (en)PHP 5.3.5 and 5.2.17 Released!
- (en)PHP 5.3.0 Released!
- (en)PHP 5.3.0 Changelog
- (en)PHP 5.3.1 Released!
- (en)PHP 5.3.1 Changelog
- (en)PHP 5.3.2 Released!
- (en)PHP 5.3.2 Changelog
- (en)PHP 5.3.3 Released!
- (en)FPM in 5.3
- (en)PHP 5.3.4 Released!
- (en)5.3.7 Released!
- (en)5.3.8 Released!
- [1]serveur HTTP destiné au développement
- Interview de Rasmus Lerdorf par Clubic le 10 novembre 2010.
/usr/bin/
est le répertoire standard des fichiers binaires exécutables sur la plupart des distributions.- PHP 6 et les différences avec PHP 4 et 5. Consulté le 5 septembre 2008
- http://php.net/manual/fr/book.dom.php
- Présentation des éléPHPants par El Roubio
- http://www.elephpant.com/
- HipHop for PHP: Move Fast, Haiping Zhao le 2 février 2010
Voir aussi
Bibliographie
- Laurent Guédon, Damien Heute, Thomas Heute, Pierre-Emmanuel Muller, PHP 5, Micro Application, coll. « La Bible Micro Application », 19 janvier 2005, 1320 p. (ISBN 2-7429-3608-4) [présentation en ligne]
- Pratique de MySQL et PHP, 3e édition - Édition O'Reilly (ISBN 978-2-84177-338-1)
- PHP 5, 3e édition - Édition Campus Press (ISBN 978-2-7440-2100-8)
- PHP 5 et MySQL 5, 1re édition - Édition Micro Application (ISBN 978-2-7429-6676-9)
- PHP 5 Cours et exercices, 1re édition - Édition Eyrolles (ISBN 978-2-212-11407-2)
- PHP et MySQL pour les nuls, 1e Édition - Édition First Interactive (ISBN 978-2-84427-832-6)
- PHP 5 avancé, 5e édition - Édition Eyrolles (ISBN 978-2-212-12369-2)
- Le Grand Livre de PHP 5, 1re édition - Édition Dunod (ISBN 978-2-10-049118-6)
- Best practices PHP 5, 1re édition française - Édition Eyrolles (ISBN 978-2-212-11676-2)
- PHP & MySQL - MySQLi - PDO, Construisez votre application, 1re édition française - Éditions ENI (ISBN 978-2-7460-4121-9) | EAN : 9782746041219 | Ref. ENI : SO5PHP
Articles connexes
- Paamayim Nekudotayim : nom de l'opérateur
::
en PHP - Liste de frameworks PHP : liste des cadres de développement (Frameworks) en PHP
Liens externes
- (en) Site officiel
- (fr) Manuel officiel PHP en français
- (fr) Annuaire officiel des développeurs certifiés (Zend Certified Engineer)
- (fr) Entretien avec Rasmus Lerdorf à l'occasion du 10e Forum PHP (2010)
- Catégorie PHP de l’annuaire dmoz
Catégories :- PHP
- Langage impératif
- Langage de script
- Langage pour pages Web dynamiques
- Logiciel sous licence libre
- Logiciel pour Windows
- Logiciel pour Unix
Wikimedia Foundation. 2010.