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 :
- Il est gratuit : On peut l'installer et le déployer sur autant de serveurs que souhaités sans payer un sous.
- Portable : Il fonctionne sous presque tous les systèmes d'exploitation : Windows 95 (jusqu'à la version 4.3.0), Windows 98 (jusqu'à la version 5.3.0), Windows Me (jusqu'à la version 5.3.0), Windows NT4 Server (jusqu'à la version 5.3.0), Windows 2000 Server, Windows 2000 Professionnel, Windows XP, Windows Server 2003, Windows Server 2008, Windows 7, Windows 10, Windows 11, Mac OS X, OS/2, eComStation, Unix, Linux et Solaris.
- Open Source : Les sources sont disponibles et modifiables.
- Il est très populaires : Il y a donc beaucoup d'exemples (voir le site de PHP.net), de cadre d'applications et de projets disponible gratuitement.
- Langage configurable : Le PHP charge un fichier de configuration php.ini lequel permet un haut niveau de configuration.
Enfin, voici les désavantages de se langage de programmation :
- Les sessions sont simples processus : Donc, si par exemple vous ajouter une fonction «session_start()» au début de votre page PHP et que vous effectuez un «exec» durant 20 secondes, il exécutera les exec une à la suite des autres plutôt que tous en même temps. Par exemple, il sera écoulé 60 secondes pour 3 appels exec plutôt que 20 secondes. Ce phénomène ne se produit que si vous indiquez une session.
- Les fonctions sont biodégradables : Environ 500 fonctions sont obsolètes depuis sa version 3, sachant qu'il y a environ 5 000 fonctions, ceci indiquant une volatilité de 10%.
- Le langage de programmation est interprété et donc il est moins rapide qu'un langage compilé.
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 |
---|---|
1.0.0 | 8 juin 1995 |
2.0.0 | 12 novembre 1997 |
3.0.0 | 6 juin 1998 |
4.0.0 | 22 mai 2000 |
4.1.0 | 10 décembre 2001 |
4.2.0 | 22 avril 2002 |
4.3.0 | 27 décembre 2002 |
4.4.0 | 11 juillet 2005 |
4.4.8 | 3 janvier 2008 |
4.4.9 | 7 août 2008 |
5.0.0 | 13 juillet 2004 |
5.1.0 | 24 novembre 2005 |
5.2.0 | 2 novembre 2006 |
5.2.8 | 8 décembre 2008 |
5.2.9 | 26 février 2009 |
5.2.10 | 18 juin 2009 |
5.2.11 | 17 septembre 2009 |
5.2.12 | 17 décembre 2009 |
5.2.13 | 25 février 2010 |
5.2.14 | 22 juillet 2010 |
5.2.15 | 9 décembre 2010 |
5.2.16 | 16 décembre 2010 |
5.2.17 | 6 janvier 2011 |
5.3.0 | 30 juin 2009 |
5.3.1 | 19 novembre 2009 |
5.3.2 | 4 mars 2010 |
5.3.3 | 22 juillet 2010 |
5.3.4 | 10 décembre 2010 |
5.3.5 | 6 janvier 2011 |
5.3.6 | 17 mars 2011 |
5.3.7 | 18 août 2011 |
5.3.8 | 23 août 2011 |
5.3.9 | 10 janvier 2012 |
5.3.10 | 2 février 2012 |
5.3.11 | 26 avril 2012 |
5.3.12 | 3 mai 2012 |
5.3.13 | 8 mai 2012 |
5.3.14 | 14 juin 2012 |
5.4.0 | 1er mars 2012 |
5.4.1 | 26 avril 2012 |
5.4.2 | 3 mai 2012 |
5.4.3 | 8 mai 2012 |
5.4.4 | 14 juin 2012 |
5.4.4 | 14 juin 2012 |
5.5 | 20 juin 2013 |
5.6.0 | 28 août 2014 |
5.6.17 | 7 Janvier 2016 |
7.0.2 | 7 Janvier 2016 |
... | ... |
Remarque
- PHP vs Java : Une différence majeure dans la logique du langage de programmation PHP par rapport à celle de Java, c'est qu'il est très permissif par rapport au langage de programmation Java, lequel est très strict dans ses contrôles. Ainsi, en Java, le code arrête lorsqu'une omission est présente tandis que le PHP continuera son cheminement.
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+ |