La mia azienda ha creato un framework PHP modulare nel corso degli anni, iniziando molto prima che PHP 5.3 aggiungesse spazi dei nomi. Di recente, abbiamo deciso di iniziare a utilizzare gli spazi dei nomi nel nuovo codice della nostra libreria e alla fine intendiamo spaziare il vecchio codice. Tuttavia, abbiamo alcuni problemi che stiamo cercando di risolvere per determinare se l'aggiunta di spazi dei nomi a una base di codice precedente alla v5.3 non è una buona idea:
- Posso inserire uno spazio dei nomi in una classe ma anche importare (usare) lo spazio dei nomi globale in modo che tutte le classi globali non abbiano bisogno di un
\prefisso? - Se assegniamo uno spazio a una classe esistente nella nostra libreria, come possiamo evitare che tutti i progetti esistenti vengano interrotti non appena l'aggiornamento del framework? Ad esempio, la libreria può cambiare il nome della classe
ThemeEnginein\module\theme\ThemeEngine, ma i siti Web esistenti chiamanoThemeEnginesenza alcuna modifica del codice? In tal caso, come sarebbe quel codice?