Tour du mois en PHP : février / mars 2010

4 avril 2010mois-php, php
 Cet article a été rédigé il y a plusieurs années et peut ne plus être tout à fait à jour…

Puisque voici le début d'un nouveau mois, avril 2010, c'est le moment de faire le tour de quelques uns des articles et blog-posts que j'ai bookmarqué pour les mois de février et mars 2010 -- ceux qui me semblent le plus intéressant ou le plus marquant, en y revenant quelques semaines après.

PHP : Février 2010

HipHop for PHP: Move Fast

C'est sans aucun doute l'actualité qui a le plus fait parler d'elle en ce mois de février 2010 : Facebook a annoncé la sortie publique -- et opensource -- de << HipHop for PHP >>, un compilateur permettant de transformer du code PHP en C++, dont l'exécution pourrait être jusqu'à 50% plus rapide que celle du code PHP initial.

Pour ne citer que quelques uns des articles écrits en réaction (une partie d'entre eux ayant d'ailleurs été rédigés/publiés avant que les sources de HipHop ne soient disponibles) :

Et voici le lien vers les sources de HipHop sur github.

Je n'ai pas encore eu le temps ni l'occasion de beaucoup tester HipHop ; l'idée est intéressante, en tout cas, mais n'oublions pas que, pour la majorité de nos applications, compiler notre code PHP ne serait qu'une des optimisations possibles parmi tant d'autre : après tout, bien souvent, ce n'est pas PHP le facteur limitant, mais plus la Base de Données, les disques, les appels réseau... Et que, d'un point de vue utilisateur, PHP ne représente que quelques pourcents du temps de chargement total d'une page !

Cool DateTime Functions In PHP 5.3

L'extension DateTime, apparue en PHP 5.2, est une alternative intéressante aux manipulations de dates basées sur des timestamps, qui souffrent de limitations incontournables[1].
PHP 5.3 a ajouté de nouvelles méthodes à la classe DateTime, comme add(), sub(), diff(), ...

XHP: A New Way to Write PHP

En citant plus ou moins la documentation, << XHP for PHP >> est une seconde extension publiée par Facebook ce mois-ci, qui modifie la syntaxe du langage PHP pour que les fragments de documents XML soient considérés comme valides -- l'idée étant de faire de PHP un moteur de templating plus strict et offrant une implémentation facilitée de composants réutilisables.
Assez peu de réactions sur cette extension, de ce que j'ai pu en retenir ; voici par exemple celle de Rasmus.

Nouveau site pour l’AFUP

L'AFUP, l'Association Française des Utilisateurs de PHP, s'offre un nouveau site Web[2], à l'occasion de son assemblée générale ; félicitations, et merci, à ceux qui ont bossé dessus !
Cette assemblée générale a vu l'élection du nouveau bureau.

PHPUnit : Tester du Code Intestable

Sebastian Bergmann, l'auteur de PHPUnit, nous propose une série de quatre articles montrant comment tester du << code intestable >> :

Voila qui, dans certains cas, pourrait aider ceux d'entre nous qui souhaitent ajouter des test unitaires automatisés à du code existant, écrit sans penser à ceux-ci !

Zend Announces General Availability of Zend Server 5.0

Zend Server sort en version 5.0 ; au programme, nouvelles versions de composants inclus, améliorations au niveau des performances, de la recherche de problèmes, ...

The Anatomy Of A Bug/Issue Reproduction Script

Combien de fois recevons-nous, en tant que développeurs, des rapports de bugs qui sont si imprécis que nous ne savons absolument pas quoi en faire ?
D'un autre côté, en tant qu'utilisateurs de logiciels[3], nous sommes nous aussi amenés à rapporter des bugs -- autant le faire de façon efficace et utile, donc !
Voici un article que beaucoup d'entre nous et d'autres utilisateurs/développeurs autour de nous devraient lire ;-)

Database Sharding at Netlog, with MySQL and PHP

Tenir la montée en charge au fur et à mesure que notre application voit son nombre d'utilisateurs augmenter n'est pas nécessairement chose facile.
Voici, à peu de choses près étape par étape, comment Netlog s'y est pris, pour son application PHP+MySQL.

More source analysis with VLD

Vulcan Logic Dumper est une extension PHP qui permet d'obtenir un dump des opcodes correspondant à un script PHP.
Elle propose aussi des fonctionnalités plus avancées, comme une routine d'analyse de code inutile.

PHP: inclued

L'extension PECL inclued permet d'obtenir des informations quant aux différents fichiers inclus lors de l'exécution d'un script PHP.
Joris va plus loin, et génère un graphe d'inclusions, à l'aide de l'utilitaire Graphviz -- voila qui peut, dans certains cas, être utile, lorsqu'il s'agit de prendre en main une base de code existant.

PHP Framework Benchmarks: Entertaining But Ultimately Useless

Et, pour finir ce mois de février 2010, un article -- pas forcément à prendre au premier degré -- montrant que, finalement, les benchmarks de Frameworks PHP ne signifient pas grand chose, et qu'on peut leur faire dire à peu près tout ce que l'on veut, selon le Framework que l'on veut mettre en avant ;-)


PHP : Mars 2010

Et maintenant, passons au mois de mars 2010 ;-)

Futur de PHP ? 6 ?

Avec la sortie de PHP 5.3 il y a bientôt un an, cette version s'est stabilisée, et, ce mois-ci, les choses ont re-commencé à bouger dans le monde PHP, autour du futur de PHP : PHP 6, tel qu'il était imaginé, n'avançait plus vraiment depuis déjà longtemps[4], et il devenait nécessaire de faire quelque chose.
Voici quelques articles au sujet des récents événements autour du futur de notre langage favoris :

A suivre sur internals@ dans les prochaines semaines, je suppose ;-)

Symfony 2.0, Doctrine 2.0, Zend Framework 2.0 : en avant, marche !

Avec PHP 5.3, qui commence tout doucement à se démocratiser, ses nouvelles fonctionnalités, et quelques années d'expérience et de retours, bon nombre de gros Frameworks commencent à travailler sur leur prochaine version majeure, prévue pour cette année 2010 ou l'année prochaine, en fonction des cas :

Ici aussi, à suivre, au cours des prochains mois ;-)

Don’t be afraid of PHP 5.3

Je vais finir par en faire un thème récurrent[5], mais PHP 5.3, c'est bien : n'en n'ayez pas peur !
Et même si ce n'est pas encore très répandu, c'est à utiliser -- c'est d'ailleurs en l'utilisant que nous encouragerons son adoption par les hébergeurs et nos clients.
Et, sur le même sujet, les slides d'une conférence donnée à ConFoo : PHP 5.3 == Awesome! Slides.

Spidermonkey gets fixed and gets ready to move from “beta” to “stable”

J'avais parlé l'an dernier de l'extension PECL Spidermonkey, qui permet d'exécuter du code Javascript côté serveur, à partir de PHP.
Celle-ci évolue, des bugs sont corrigés -- bref, que des bonnes nouvelles !
Note : vous utilisez cette extension pour exécuter du code Javascript côté serveur ? Une autre ? Pourquoi ? Pour un système de plugins ? Comment ? Faites-le savoir ;-)

Building the PHP MS SQL Server extension from source on Ubuntu 8.10

J'ai bossé pendant pas mal de temps sur un projet PHP tournant sur des serveurs Linux, et communiquant avant une base de données SQL Server -- ce qui n'est pas toujours marrant ^^
Voici quelques notes expliquant comment compiler l'extension mssql sous Linux/Ubuntu[6].

Creating Scalable Vector Graphs with PHP

Créer des graphiques en PHP est un besoin qui revient fréquemment ; on pense généralement à des bibliothèques comme JpGraph, ou à des outils comme Google Chart, mais, vu les possibilités, les avantages, et les résultats, et considérant que SVG est de plus en plus supportés par les navigateurs modernes, voici une alternative intéressante : générer du SVG (Scalable Vector Graphics) à partir de PHP.

Redis PHP Introduction

Redis est un système de stockage proche de memcached, mais qui supporte les listes, et le stockage sur disque.
Voici un article d'introduction expliquant comment l'utiliser à partir de PHP.

Parsing XML documents with CSS selectors

Et, enfin, je vois beaucoup trop souvent des développeurs qui essayent de parser du XML (ou du HTML) en utilisant des expressions rationnelles[7] ; bien souvent, il leur est conseillé d'utiliser XPath à la place.
Mais utiliser XPath implique prendre en main un nouveau langage de requêtage, qui n'est pas des plus simple au premier abord...
Voici peut-être une solution à cette problématique : une classe PHP permettant de transformer des sélecteurs CSS, connus par la plupart des développeurs PHP, en expressions XPath !


D’autres articles, ou évènements, ont attiré votre attention, pour ces mois de février et mars 2010?
Comme d’habitude, n’hésitez pas à en faire part en commentaire !


Notes

[1] Comme le fait que les timestamps soient généralement stockés sous forme d'entiers sur 32 bits, les limitant à une plage de dates allant de 1970 à 2038

[2] Et ça ne peut pas faire de mal : l'ancien site de l'AFUP commençait à dater un peu

[3] Qui parle de PHP, par exemple ?

[4] On avait vu l'an dernier que grand nombre de fonctionnalités initialement prévues pour PHP 6 avaient été backportées vers PHP 5.3

[5] Ah, c'est déjà le cas, vous croyez ?

[6] Dommage que ça ne parle pas de pdo_dblib ; mais bon, le plus dur est fait

[7] Expressions régulières pour parser du XML/HTML : je me demande si je ne vais pas rédiger un article à ce sujet, d'ailleurs, un jour...