Mein Unternehmen hat im Laufe der Jahre ein modulares PHP-Framework erstellt, lange bevor PHP 5.3 Namespaces hinzufügte. Vor kurzem haben wir beschlossen, Namespaces im neuen Code unserer Bibliothek zu verwenden, und wir beabsichtigen, den alten Code irgendwann zu benennen. Wir haben jedoch einige Probleme, die wir zu lösen versuchen, um festzustellen, ob das Hinzufügen von Namespaces zu einer Codebasis vor Version 5.3 keine gute Idee ist:
- Kann ich eine Klasse mit einem Namespace versehen, aber auch den globalen Namespace importieren (verwenden), sodass alle globalen Klassen kein
\
Präfix benötigen ? - Wenn wir eine vorhandene Klasse in unserer Bibliothek mit einem Namespace versehen, wie können wir verhindern, dass alle vorhandenen Projekte beschädigt werden, sobald das Framework aktualisiert wird? Zum Beispiel kann die Bibliothek Änderung der Name der Klasse
ThemeEngine
zu\module\theme\ThemeEngine
, aber die bestehenden Websites aufrufen ,ThemeEngine
ohne jede Code - Änderung? Wenn ja, wie würde dieser Code aussehen?