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
ThemeEnginein\module\theme\ThemeEngine, ma i siti web esistenti chiamanoThemeEnginesenza qualsiasi modifica del codice? In tal caso, come sarebbe il codice?