Les nouveautés de la version 5 de PHP

La version bêta de PHP 5 (5.0.0 Beta 1) peut-être téléchargée sur le site php.net depuis le 29 juin. La version de production est annoncée pour la fin de l’année. Mais quels sont les changements qu’apportent cette nouvelle version du langage ?

La librairie Mysql ne sera plus distribuée avec le PHP

C’est une conséquence directe de la décision de l’équipe de MySql AB (la société chargée de développer commercialement MySql) de placer ce très populaire SGBD en licence GPL stricte.
Comme le langage PHP est placée lui sous une licence beaucoup plus libre, un « conflit » potentiel est apparu, et il a été décidé de séparer la librairie MySql des packages PHP. Dans les bundles PHP, la librairie mysql est remplacée par SqlLite

Cela ne signifie pas que l’on ne pourra plus utiliser MySql avec PHP. Simplement que la librairie de connexion ne sera plus dans les distributions. En clair, il faudra télécharger les sources chez MySql et tout recompiler. Sur les plateformes Unix/Linux, il est fréquent de procéder ainsi, donc les développeurs ne seront pas pratiquement gênés. Sur les plateformes windows, il est clair que beaucoup seront gênés.

Une nouvelle version du moteur Zend

Le moteur Zend n’avait pas franchement évolué dans son architecture depuis ses débuts dans la version 3.0. Il assuré le succès du langage mais ses limitations commençaient à se faire sentir. Il a donc fait l’objet d’une réécriture complète. La syntaxe du langage reste pratiquement inchangée, mais derrière les instructions se cacheront de profonds changements.

De nouvelles posssibilités en programmation objet

Toute une série de modifications ont été apportée à la gestion des classes objet. La syntaxe se rapproche des scripts JSP. Et de nouvelles fonctionnalités objet apparaissent :

Les nouvelles fonctionnalités objet en PHP :

  • Membres privés et protégés
  • Méthodes privées et protégées
  • Méthodes et classes abstraites
  • Interfaces
  • Typage des arguments
  • Clonage
  • Final
  • Constructeurs unifiés
  • Destructeurs
  • Constantes de classe
  • Exceptions
  • Déréférencement d’objets issus de fonctions
  • Méthodes statiques
  • instanceof
  • Variables statiques de fonctions
  • _autoload()
  • Les accesseurs de propriété et les appels de méthodes sont remplacables

Une interface améliorée avec les API Objets

Le nouveau moteur objet facilite l’interface avec les autres API orientées objet, comme les composants COM, et surtout les objets JAVA.

Une gestion complète des exceptions

La gestion des erreurs de PHP 4 sera gérée par une gestion complète des exceptions, qui autorisera une programmation en « tolérance de panne ». Il sera même possible de configurer le moteur pour que certaines fonctions internes au php envoie des codes d’exception plutôt que des codes d’erreur. L’une des applications sera par exemple d’autoriser enfin une gestion intelligente des problèmes rencontrés avec une base de données.

Le support du XML s’améliore autour de libxml2

En php 4, le support du XML fonctionnait grace à 3 librairies externes : expat, sablotron, et libxml. En 5, le support a été repensé autour de libxml2, ce qui permet de manipuler très facilement tous les éléments du XML. Un parser apparait, baptisé simple_xml, qui permet de parser un fichier xml, de charger son contenu dans des variables php en une passe, pour les utiliser ensuite…

Quelques questions/réponses en bref sur la version 5
La version 5 introduit-elle un typage des variables plus strict ?
Toujours pas : PHP reste délibérément un langage dans lequel les types de variables sont définis de manière « élastique »
PHP évoluera t’il vers un langage pour serveur d’applications, en plus du serveur web ?
Non ! Ce n’est pas prévu
Le PHP reste-t’il un langage procédural ?
Oui, la programmation objet restera optionnelle
La compatibilité ascendante sera-t’elle assurée entre scripts PHP 4 et 5 ?
Pour l’essentiel, oui.
PHP 5 apporte-t’il la compatibilité avec Apache 2
En principe, ce ne sera toujours pas le cas avec la première version de production
Y’aura-t’il une version .net du langage
Non !

Pour en savoir plus : Le site de Zend

Philippe YONNET


Commentez l’article « Les nouveautés de la version 5 de PHP » sur le forum du Hub