Por que precisamos dos namespaces?
A medida que o código-fonte do PHP cresce e o número de classes, funções e bibliotecas cresce junto fica cada vez mais fácil de acontecer uma “colisão de nomes” que é quando duas classes/funções/variáveis/constantes têm o mesmo nome. Isso acarretará inúmeros erros ao seu sistema.
Até agora a solução foi definida por duas saídas: a primeira é o uso de prefixos, veja o exemplo o Word Press que coloca um “WP_” antes do nome da cada função ou classe.. A outra saída é o uso de nomes gigantescamente descitrivos como por exemplo “funcao_que_retorna_o_total_de_usuarios()”… O que eu nem vou comentar.
Agora, com os namespaces, temos uma terceira (e muito melhor) opção para solucionar esse problema!
O que faz esse tal de namespaces?
Imagine que você fez uma função nova para usar no seu site só que ela usa nomes e constantes com nomes genéricos (por exemplo: “user” e “database”)… Ela normalmente seria assim:
Código PHP:
<?php
function connect() {
// Faz a sua conexão com o banco de dados
}
?>
Só que se você usar alguma outra biblioteca/classe/função pronta, pode haver uma colisão de nomes e você vai precisar mudar o nome da sua função pra algo maior… Só que você não quer isso.
Aí, usando a maravilha do namespace, você faz assim:
Código PHP:
<?php
namespace MeuProjeto;
function connect() {
// Faz a sua conexão com o banco de dados
}
?>
E quando você precisar chamar a função do MeuProjeto é só fazer assim:
Código PHP:
<?php
// Inclui o arquivo com a função
include("conexao-MySQL.php");
// Chama a função dentro do namespace
MeuProjeto/connect();
?>
Eu usei apenas exemplo com funções, mas os namespaces funcionam muito bem com classes e constantes também! Vale a pena experimentar.
Fonte: Blog Thiago Belem