Mi empresa ha creado un marco PHP modular a lo largo de los años, comenzando mucho antes de que PHP 5.3 agregara espacios de nombres. Recientemente, decidimos comenzar a usar espacios de nombres en el nuevo código de nuestra biblioteca, y tenemos la intención de eventualmente espaciar el nombre del código antiguo. Sin embargo, tenemos algunos problemas que estamos tratando de resolver para determinar si agregar espacios de nombres a una base de código anterior a la v5.3 no es una buena idea:
- ¿Puedo asignar un espacio de nombres a una clase pero también importar (usar) el espacio de nombres global para que todas las clases globales no necesiten un
\
prefijo? - Si asignamos un espacio de nombres a una clase existente en nuestra biblioteca, ¿cómo podemos evitar que todos los proyectos existentes se rompan tan pronto como se actualice el marco? Por ejemplo, ¿puede la biblioteca cambiar el nombre de la clase
ThemeEngine
a\module\theme\ThemeEngine
, pero los sitios web existentes llamanThemeEngine
sin ninguna modificación de código? Si es así, ¿cómo se vería ese código?