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
ThemeEngine
in\module\theme\ThemeEngine
, ma i siti Web esistenti chiamanoThemeEngine
senza alcuna modifica del codice? In tal caso, come sarebbe quel codice?