Section courante

A propos

Section administrative du site

Fiche technique
Type de produit : Langage de programmation
Auteur : Rasmus Lerdorf
Date de publication : 1994
Licence : PHP License

Introduction

Le langage PHP est l'abréviation de «PHP: Hypertext Preprocessor», mais les deux premières versions, l'abréviation était Personal Home Page. Il a été inventé en 1994 par Rasmus Lerdorf.

A l'origine se langage de programmation a été développé pour des serveurs Web, afin qu'il soit plus facile que le langage de programmation Perl pour le développement de page Web. Ce n'est que très récemment qu'il a été porté pour .NET sous le nom de Phalanger, le projet Quercus (pour exécuter du PHP en Java, pour s'héberger sous Google App Engine par exemple) ou Delphi for PHP (version mélangeant à la fois Delphi pour les composantes comme IntraWeb et PHP), mais il ne s'agit pas de son orientation principal. Les versions suivi, par la communauté, sont davantage 3, 4, 5 et 7 destiné uniquement pour le Web et ils l'utilisent en grande majorité avec MySQL.

Points fort et points faibles

Tout d'abord, voici les avantages de se langage de programmation :

Enfin, voici les désavantages de se langage de programmation :

Les possibilités d'extensibilité

Le PHP n'a pas jusqu'à maintenant de balise intégré, par contre il est possible de combiné les balises ESI (esi:attempt, esi:include, esi:try,...) avec les pages PHP si vous utilisez un serveur Web Apache Traffic Server (TS) avec l'«ESI plugin». Cette possibilité peut s'avérer fort ingénieuse pour des sites avec des générations de contenu et un traffic très élévé (voir Articles - Optimisation pour des sites à haut niveau de trafic).

Les versions

Les versions sont une véritable mélange de superposition entre les sous-versions. Tout d'abord, la version 4 et la version 5 se sont chevauchées pendant un bon moment et il règne une certaine confusion entre les sous-versions des deux. Ensuite, la version PHP6 fut abonnées il y a une année. Cela mit un doute sur l'avenir du PHP. En attendant, bien que Facebook et le projet Drupal (CMS) les font vivres, les sous-versions de PHP on prit le relais.

La version 5.3 amène les espaces de noms (namespace) comme l'a proposé le .NET avec C#, VB .NET et Visual C++ .NET. Cette possibilité offre la possibilité d'empiler plein de projet en conflit entre eux et d'en faire une solution unique. Cette astuce peut être intéressante pour des gros projets mais en même temps peut ajouter de la médiocrité par une redondance de certains projets fusionner à toute hâte. Un projet utilisant cette caractéristiques c'est bien sûre Assetic for Asset Management de Symfony et ayant justement une lourdeur en terme d'espace disque assez imposante.

Voici les versions les plus communes de PHP :

Version Date de publication Commentaires
1.0.0 8 juin 1995 Première publication publique de PHP, alors appelé Personal Home Page Tools.
2.0.0 12 novembre 1997 Version connue sous le nom PHP/FI 2.0, intégrant davantage de fonctions pour les formulaires et les bases de données.
3.0.0 6 juin 1998 Réécriture importante du langage par Zeev Suraski et Andi Gutmans, marquant le début du PHP moderne.
4.0.0 22 mai 2000 Première version reposant sur le moteur Zend Engine.
4.1.0 10 décembre 2001 Introduction des superglobales comme $_GET, $_POST et $_SESSION.
4.2.0 22 avril 2002 Modification importante de sécurité avec register_globals désactivé par défaut.
4.3.0 27 décembre 2002 Introduction de l'interface en ligne de commande CLI.
4.4.0 11 juillet 2005 Version de stabilisation de la branche PHP 4.
4.4.8 3 janvier 2008 Version corrective tardive de la branche PHP 4.4.
4.4.9 7 août 2008 Dernière version officielle de PHP 4.
5.0.0 13 juillet 2004 Première version de PHP 5, avec le Zend Engine II et un modèle objet amélioré.
5.1.0 24 novembre 2005 Amélioration du moteur, de PDO et des performances générales.
5.2.0 2 novembre 2006 Ajout de nouvelles extensions et amélioration du support JSON.
5.2.8 8 décembre 2008 Version corrective de la branche PHP 5.2.
5.2.9 26 février 2009 Version de maintenance de PHP 5.2.
5.2.10 18 juin 2009 Correctifs de stabilité et de sécurité.
5.2.11 17 septembre 2009 Version corrective de maintenance.
5.2.12 17 décembre 2009 Correctifs de bogues dans la branche 5.2.
5.2.13 25 février 2010 Version corrective de PHP 5.2.
5.2.14 22 juillet 2010 Correctifs de sécurité et de stabilité.
5.2.15 9 décembre 2010 Version de maintenance.
5.2.16 16 décembre 2010 Correctif publié peu après PHP 5.2.15.
5.2.17 6 janvier 2011 Dernière version officielle de la branche PHP 5.2.
5.3.0 30 juin 2009 Ajout des espaces de noms, des fermetures, de late static binding et d'autres nouveautés majeures.
5.3.1 19 novembre 2009 Version corrective de PHP 5.3.
5.3.2 4 mars 2010 Correctifs de bogues et de sécurité.
5.3.3 22 juillet 2010 Version de maintenance de la branche 5.3.
5.3.4 10 décembre 2010 Correctifs de sécurité et de stabilité.
5.3.5 6 janvier 2011 Version corrective.
5.3.6 17 mars 2011 Correctifs et améliorations internes.
5.3.7 18 août 2011 Version corrective de PHP 5.3.
5.3.8 23 août 2011 Correction rapide après PHP 5.3.7.
5.3.9 10 janvier 2012 Version de maintenance.
5.3.10 2 février 2012 Correctifs de sécurité.
5.3.11 26 avril 2012 Version corrective.
5.3.12 3 mai 2012 Correctif de maintenance.
5.3.13 8 mai 2012 Version corrective publiée rapidement après PHP 5.3.12.
5.3.14 14 juin 2012 Correctifs de bogues et de sécurité.
5.4.0 1er mars 2012 Ajout des traits, du serveur Web intégré et de la syntaxe courte des tableaux.
5.4.1 26 avril 2012 Version corrective de PHP 5.4.
5.4.2 3 mai 2012 Correctif de maintenance.
5.4.3 8 mai 2012 Version corrective.
5.4.4 14 juin 2012 Correctifs de bogues et de sécurité.
5.4.4 14 juin 2012 Ajout des générateurs, du bloc finally et de l'API password_hash.
5.5 20 juin 2013 Ajout des fonctions variadiques, du déballage d'arguments et d'améliorations syntaxiques.
5.6.0 28 août 2014 Version corrective de la branche PHP 5.6.
5.6.17 7 Janvier 2016 Première version de PHP 7, avec Zend Engine 3 et de fortes améliorations de performances.
7.0.0 3 décembre 2015 Première version de PHP 7, avec Zend Engine 3 et de fortes améliorations de performances.
7.0.1 17 décembre 2015 Première version corrective de PHP 7.0.
7.0.2 7 Janvier 2016 Version corrective de la branche PHP 7.0.
7.0.3 31 mars 2016 Première mise à jour corrective importante de la branche PHP 7.0.
7.1.0 1 décembre 2016 Introduction des types nullable (?Type), du type de retour void, des constantes de classe avec visibilité et de nombreuses améliorations des performances.
7.2.0 30 novembre 2017 Ajout du type object, intégration de la bibliothèque de chiffrement libsodium, amélioration des extensions et optimisations du moteur Zend.
7.3.0 6 décembre 2018 Amélioration des syntaxes Heredoc et Nowdoc, nouvelles fonctions JSON, meilleure gestion de la mémoire et optimisation des performances.
7.4.0 28 novembre 2019 Introduction des propriétés typées, des fonctions fléchées (Arrow Functions), du préchargement (Preloading) et des références faibles (Weak References).
8.0.0 26 novembre 2020 Première version majeure de PHP 8. Introduction du compilateur JIT (Just-In-Time), des types union, des attributs (Attributes), des expressions match et de nombreuses améliorations du langage.
8.1.0 25 novembre 2021 Introduction des énumérations (Enums), des fibres (Fibers), des propriétés readonly, des types intersection et de nombreuses optimisations du moteur.
8.2.0 8 décembre 2022 Ajout des classes readonly, des types en forme normale disjonctive (DNF), de nouvelles optimisations et dépréciation des propriétés dynamiques.
8.3.0 23 novembre 2023 Introduction des constantes de classe typées, amélioration des exceptions DateTime, nouvelles fonctions et optimisations générales du langage.
8.4.0 21 novembre 2024 Introduction des Property Hooks, de la visibilité asymétrique des propriétés, de nouvelles fonctions de manipulation des tableaux et de nombreuses améliorations de performances.
8.5.0 20 novembre 2025 Dernière version majeure. Amélioration du système de types, nouvelles optimisations du compilateur, amélioration de l'expérience de développement et nouvelles fonctionnalités du langage.
... ... ...

Remarque

PHP6

Étant donné l'abandon du PHP6, les développeurs de PHP se retrouvaient coincé avec un produit n'évoluant plus vraiment. Il fallait donc élevé nos horizons vers des concurrents mais partenaire de PHP. La meilleure optique dans ce sens, c'était bien sûre HipHop for PHP de Facebook (aussi connu sous le nom de Hphp). Il s'agissait d'un moteur de script PHP complètement redéveloppé par Facebook, lequel était une version beaucoup plus performantes que le moteur PHP, car il transforme le code PHP en C++ optimisé. Il s'agissait sens nulle doute de la meilleure optique en terme d'avenir pour le PHP en se moment là. Cependant, Facebook a également créer un langage de programmation du nom Hack fortement inspiré du PHP, il aurait pu également s'agir d'une solution d'avenir...

PHP7

Le PHP apporte des améliorations considérables au niveau des applications avec de nombreux fichiers et des classes complexes, ainsi des projets comme Drupal s'en retrouve grandement accéléré. De plus, l'écart de performance existant avec la version HipHop for PHP de Facebook est enfin rattrapé.

Cadres d'application

Voici quelques cadres d'applications (Framework) utilisable avec le PHP :

Nom Description Compatibilité
Agavi Développer selon une conception de modèle Modèle-Vue-Contrôleur (MVC) PHP5+
Akelos Développer selon une conception de modèle Modèle-Vue-Contrôleur (MVC) avec AJAX PHP4+
AWF Gestionnaire de contenu ayant évolué vers un cadre d'application (Framework) PHP5+
CakePHP Conception selon le modèle Modèle-Vue-Contrôleur (MVC), style Ruby on Rails. PHP4+
Castor Créer par la société 2LE pour les entreprises, très simple mais efficace. PHP4+
Cerebral Cortex Développement d'application rapidement PHP5+
Code Igniter Basé sur une boite à outils PHP4+
Copix Développer en 5 couches et entièrement POO PHP4+
Graniware Le portail communautaire Limousin PHP4+
Laravel Cadre d'application MVC PHP5.6+
PEAR La référence des cadres d'applications (Framework) PHP4+
Portix-PHP Utilise aucune base de données mais un système de fichier texte PHP4+
QCodo Développer selon une conception de modèle Modèle-Vue-Contrôleur (MVC) PHP5+
Symfony Développer selon une conception de modèle Modèle-Vue-Contrôleur (MVC) PHP5+
Zend Framework Très professionnel et puissant. Supporté par Zend et IBM PHP5.1.4+

Code source

Voici des exemples de code source d'utilitaires pour manipuler le PHP :

Lien Langage de programmation Description Projet Syntaxe
ASC2PHP.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier ASCII en code source PHP. DEV-COOLS ASC2PHP
PHP86.PAS Free Pascal, Turbo Pascal Cette commande permet de lancer le compilateur PHP pour l'assembleur du microprocesseur 8086 ou 8088. DEV-COOLS PHP86


Dernière mise à jour : Samedi, le 16 janvier 2016