Моя компания создала модульную структуру PHP за эти годы, задолго до того, как в PHP 5.3 были добавлены пространства имен. Недавно мы решили начать использовать пространства имен в новом коде нашей библиотеки, и мы намерены в конечном итоге использовать пространство имен для старого кода. Однако у нас есть несколько проблем, которые мы пытаемся решить, чтобы определить, является ли добавление пространств имен в базу кода до v5.3 просто плохой идеей:
- Могу ли я использовать пространство имен для класса, а также импортировать (использовать) глобальное пространство имен, чтобы все глобальные классы не нуждались в
\
префиксе? - Если мы поместим пространство имен в существующий класс в нашей библиотеке, как мы можем предотвратить разрушение всех существующих проектов после обновления инфраструктуры? Например, может ли библиотека изменить имя класса
ThemeEngine
на\module\theme\ThemeEngine
, но существующие веб-сайты вызываютThemeEngine
без какой-либо модификации кода? Если так, то как бы выглядел этот код?