Mon entreprise a créé un framework PHP modulaire au fil des ans, bien avant que PHP 5.3 n'ait ajouté d'espaces de noms. Récemment, nous avons décidé de commencer à utiliser des espaces de noms dans le nouveau code de notre bibliothèque, et nous avons l'intention de l'espace de noms de l'ancien code à terme. Cependant, nous essayons de résoudre quelques problèmes pour déterminer si l'ajout d'espaces de noms à une base de code antérieure à la version 5.3 n'est pas une bonne idée:
- Puis-je nommer une classe mais aussi importer (utiliser) l'espace de noms global pour que toutes les classes globales n'aient pas besoin d'un
\
préfixe? - Si nous nommons une classe existante dans notre bibliothèque, comment pouvons-nous empêcher tous les projets existants de se casser dès la mise à niveau du framework? Par exemple, la bibliothèque peut-elle changer le nom de la classe
ThemeEngine
en\module\theme\ThemeEngine
, mais les sites Web existants appellentThemeEngine
sans aucune modification de code? Si oui, à quoi ressemblerait ce code?