La mia azienda ha creato un framework PHP modulare nel corso degli anni, iniziando molto prima che PHP 5.3 aggiungesse spazi dei nomi. Recentemente, abbiamo deciso di iniziare a utilizzare gli spazi dei nomi nel nuovo codice della nostra biblioteca e, alla fine, intendiamo suddividere il vecchio codice. Tuttavia, abbiamo alcuni problemi che stiamo cercando di capire se aggiungere spazi dei nomi a una base di codice pre-v5.3 non è una buona idea:
- Posso assegnare uno spazio ai nomi a una classe ma anche importare (utilizzare) lo spazio dei nomi globale in modo che tutte le classi globali non abbiano bisogno di un prefisso
\
? - Se assegniamo spazio dei nomi a una classe esistente nella nostra libreria, come possiamo evitare che tutti i progetti esistenti si interrompano non appena il framework si aggiorna? Ad esempio, la libreria può cambiare il nome della classe
ThemeEngine
in\module\theme\ThemeEngine
, ma i siti web esistenti chiamanoThemeEngine
senza qualsiasi modifica del codice? In tal caso, come sarebbe il codice?