Mot-clé - Dmitry Stogov

Fil des billets - Fil des commentaires

jeudi 14 juillet 2011

Espace de noms et importations de classes

Il y a deux ou trois semaines, j'ai découvert un comportement étrange de PHP lorsque j'utilisais l'importation d'espaces de noms au sein de atoum, mon framework de tests unitaires pour PHP 5.3, matérialisé par le message d'erreur suivant :

Fatal error: Cannot use ns\class2 as class2 because the name is already in use in /path/to/ns_ns1_ns2_class1.php on line X

D'après PHP, j'importais une classe via la syntaxe use ns\class2 dans l'un de mes fichiers alors que son nom était déjà utilisé par une autre classe dans un autre fichier.

Après une petite prise de tête, j'ai réussi à isoler le cas posant problème en quelques lignes de code, et j'en ai déduis que l'ordre de déclaration de mes classes avait une importance, puisque suivant la façon dont j'incluais mes fichiers, j'obtenais, ou pas, le message d'erreur.

Or, un espace de noms est censé avoir une portée limitée au fichier dans lequel il est déclaré, et en conséquence, il me semblait que l'ordre d'inclusion des fichiers n'avait pas d'importance et donc que ce message n'avait pas de sens.

J'ai donc rédigé un rapport de bug à ce sujet, et j'ai attendu patiemment la réponse, pratiquement persuadé que j'avais débusqué un problème au sein de la gestion des espaces de nommage de PHP.

Lire la suite

lundi 20 septembre 2010

Mort de PHP6 + 190 jours

Je dois dire que cette dernière période de dix jours n'a pas été inintéressante, même si cela dépend du point de vue, comme vous allez pouvoir le constater dans la suite de ce billet.

En effet, la communauté des développeurs de PHP a été très active, aussi bien au niveau de la liste de diffusion internals@ qu'au niveau du trunk qui contient, en tout ou partie, ce qui deviendra la future version majeure du langage.

Les annotations, et plus particulièrement la RFC correspondante et l'implémentation qui en a été faite, ont été au centre d'un débat virulent et animé, et le trunk a subit une soixantaine de modifications.

Lire la suite