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
ThemeEngine
do\module\theme\ThemeEngine
, ale istniejące strony internetowe dzwonićThemeEngine
bez jakiejkolwiek modyfikacji kodu? Jeśli tak, jak wyglądałby ten kod?