Moja firma przez lata tworzyła modułowe środowisko PHP, zaczynając na długo przed dodaniem przestrzeni nazw przez PHP 5.3. Niedawno postanowiliśmy zacząć używać przestrzeni nazw w nowym kodzie naszej biblioteki i zamierzamy w końcu zamienić stary kod przestrzeni nazw. Mamy jednak kilka problemów, nad którymi staramy się ustalić, czy dodanie przestrzeni nazw do bazy kodu wcześniejszej niż 5.3 nie jest dobrym pomysłem:
- Czy mogę przestrzeni nazw klasy, ale także importować (używać) globalną przestrzeń nazw, aby wszystkie klasy globalne nie potrzebowały
\prefiksu? - Jeśli nazwamy istniejącą klasę w naszej bibliotece, jak możemy zapobiec awarii wszystkich istniejących projektów, gdy tylko uaktualni się framework? Można na przykład biblioteka zmienić nazwę klasy
ThemeEnginedo\module\theme\ThemeEngine, ale istniejące strony internetowe dzwonićThemeEnginebez jakiejkolwiek modyfikacji kodu? Jeśli tak, jak wyglądałby ten kod?