Estou na fase de pré-lançamento de um projeto PHP de código aberto, que espero que seja usado por outros desenvolvedores em seus próprios projetos. No momento, o projeto não suporta espaços para nome e estou tentando avaliar se ele deve usar espaços para nome ou a convenção de nomenclatura PEAR de Dir_Subdir_Class, que parece ter todos os mesmos benefícios técnicos sem algumas desvantagens. Para ser sincero, não é uma escolha fácil.
Alguns pontos de consideração em relação aos namespaces:
- Uma das maneiras pelas quais meu projeto está tentando se diferenciar, fornecendo uma API mais simples do que outros projetos similares. Como os espaços para nome são novos e também porque são mais complicados do que a convenção de nomenclatura PEAR, introduzi-los na base de código tornará meu projeto menos simples de usar. Ao implementá-los, perco alguma diferenciação em termos de facilidade de uso.
- Embora eu possa ver alguns benefícios para os namespaces, eles não parecem resolver um problema que precisa ser resolvido em um produto PHP moderno que usa a convenção de nomenclatura PEAR. Nomear conflitos ao usar meu projeto deve ser mínimo, se não existir.
- Este artigo me dá uma pausa na adoção de namespaces, pois sua implementação tem sido menos do que estelar.
- Também hesito em pular em uma onda que pode não ir a lugar algum. Como os espaços para nome são um novo recurso do PHP, ainda não estou convencido de que eles se tornem padrão.
- Compatibilidade. Quase todo o código PHP que já foi escrito não usa namespaces, pois é um novo recurso. Outras bibliotecas seriam incompatíveis sem uma conversão.
Alguns pontos para usar namespaces:
- Percepção. Se os namespaces se tornarem padrão e uma prática recomendada, meu projeto poderá rapidamente ser visto como não profissional e obsoleto sem eles.
- Concorrência. Embora alguns projetos PHP concorrentes estejam começando a usar namespaces em suas versões mais recentes, muitos ainda não deram o salto. Fazer isso agora pode ajudar o meu projeto em outros projetos.
- O trabalho futuro seria mais fácil se eu fizesse a troca agora antes que o projeto se tornasse público, e não depois, onde teria que suportar duas versões dele por um tempo.
- Quero dar suporte às práticas recomendadas e, se os namespaces se tornarem uma prática recomendada para PHP, meu projeto deve fazer uso deles.
Pelo que sei, você deve escolher um caminho ou outro; você não pode fazer as duas coisas. Há algum ponto que eu não considerei? Existem sinais objetivos (sem guerra de fogo, por favor) que apontem para ou contra os namespaces que se tornam o padrão profissional do PHP? Agradecemos qualquer insight ou recursos que você gostaria de compartilhar, pois preciso tomar uma decisão em breve.