Minha empresa criou uma estrutura modular PHP ao longo dos anos, começando muito antes do PHP 5.3 adicionar espaços de nomes. Recentemente, decidimos começar a usar espaços para nome no novo código da nossa biblioteca e pretendemos eventualmente colocar o código antigo no espaço para nome. No entanto, temos alguns problemas que estamos tentando resolver para determinar se a adição de namespaces a uma base de código anterior à v5.3 não é uma boa idéia:
- Posso namespace uma classe, mas também importar (usar) o namespace global para que todas as classes globais não precisem de um
\
prefixo? - Se nomearmos uma classe existente em nossa biblioteca, como podemos impedir que todos os projetos existentes sejam interrompidos assim que a estrutura for atualizada? Por exemplo, a biblioteca pode alterar o nome da classe
ThemeEngine
para\module\theme\ThemeEngine
, mas os sites existentes chamamThemeEngine
sem nenhuma modificação de código? Se sim, como seria esse código?