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