Un point sur le développement de PHP 5.3
Par Seza le mardi 2 septembre 2008, 01:57 - Programmation - Lien permanent
Aujourd’hui les tâches assignées à la version Alpha 2 de PHP 5.3 sont marquées comme terminée.
Même si il reste encore du travail à l’équipe de développement pour finaliser PHP 5.3 nous pouvons déjà faire un point sur les changements. PHP 5.3 apporte énormément de nouveauté et de changement comparé au version mineure précédente. En d’autre terme en plus d’alimenter nombre de discussion à son sujet cette version est très attendu des développeurs et son adoption se fera certainement sans aucune difficulté.
En ce qui me concerne la sortie de PHP 5.3 est actuellement à mes yeux un changement plus important que celui de PHP 6 qui sera surement quand à elle la version mature des changements apporter et amorcer par PHP 5.3.
Encore faut-il bien comprendre ce que va nous apporter PHP 5.3. Je vais ici vous faire un point rapide mais pas technique sur ce que vous aller rencontrer dans cette prochaine version.
Nous pouvons observer ici une pré version du document recensant toutes les modifications apporter entre PHP 5.2 et PHP 5.3 : upgrade to PHP 5.3.
Ce document est en perpétuel changement comme tous les autres documents du wiki de PHP, ce qui est inscrit ici n’est donc pas à prendre au pied de la lettre et est susceptible d’être changer à tout moment. Même si beaucoup de chose peuvent être considéré comme acquise aujourd’hui avec la très prochaine sortie de l’Alpha 2 nous allons tout de suite voir que des modifications peuvent arrivées.
Un exemple important est le cas des namespaces, une grosse nouveauté pour PHP, pourtant une documentation des namespaces est déjà en ligne sur la doc. officielle de PHP. On peut observer à la lecture de la rfc sur les namespaces une réflexion sur la manière dont ils sont implémenter. L’implémentation des namespaces pourrait en effet être modifié, afin d’être améliorée à mon avis si le type de structure en bloc est choisi, ce qui entraînera la production d’une version alpha 3 de PHP 5.3 et retarderai sûrement sa sortie.
On peut d’ors et déjà comprendre qu’il n’est pas évident de développer pour PHP 5.3 dès maintenant avec de tel possibilité de changement.
Autre nouveauté intéressante à mon goût dont on a très peut parlé ce sont les closures dont le support est maintenant ajouté. Les closures amènent avec elles de nouvelles possibilités de programmation avec PHP 5.3 et je pense nous ne tarderons à voir arriver de nouveaux algorithmes basés sur les closures. Si vous souhaitez mieux comprendre ces dernières je vous invite à lire la rfc sur les closures.
J’apprécie le fait dans l’utilisation des closures avec PHP, la possibilité de préciser quelles variables de l’élément parent doivent être reprise dans la fonction lambda. Pour mettre déjà retrouver embêter dans ce genre de cas avec du Javascript notamment, qui ne permet pas cette précision, j’apprécie énormément cette possibilité.
L’apport de la structure label, goto est aussi nouveau pour PHP. C’est à mon goût assez dangereux, nombreux sont les programmeurs qui dans d’autres langages se sont déjà heurtés à l’empilement de ces structures provoquant un code incompréhensible et indébogable.
L’arrivée de la méthode magique __callStatic() résoudra quand à elle son lot de rustines et autres contournements que PHP nous imposait avec l’héritage de classe.
Une autre méthode magique __invoke() fait aussi sont apparition. À l’heure actuelle je ne trouve pas vraiment d’utilité à cette méthode mais qui sait peut être ce sera une nouvelle possibilité conséquente dans PHP.
L’arrivée du pilote mysqlnd pour Mysql apportera certainement un grand confort dans l’utilisation de PHP avec mysql avec des performances encore meilleure. J’espère que l’utilisation de PDO avec mysqlnd sera moins boguée et plus agréable ! Aujourd’hui en utilisant PDO, il m’arrive souvent de regretter ma bonne veille classe d’abstraction avec les fonctions mysql_*.
Attention aux projets utilisant : ncurses, fpdf, sybase, dbase, fbsql, ming. Ces extensions ne font plus partie de core PHP et sont migrées vers le dépôt PECL.
Les extensions PCRE, SPL” et Reflexion” ne pourront plus être désactivées. Vous pouvez donc vous basés dessus sans vous souciez de leur présence dans vos futurs scripts PHP 5.3.
De nombreux changements dans les fonctions existantes aussi sont amenés et de nouvelles fonctions font leur apparition. Dans ces « petits détails », je retiens notamment l’arrivée de date_diff() et quoted_printable_encode() qui me seront vraiment très utile. La constante __DIR__ aussi va venir se greffer dans mes scripts pour remplacer le bon vieux dirname(__FILE__).
Voilà pour un résumer rapide de ce qui est à retenir dans l’évolution à venir de PHP.
Derniers commentaires