Usando Namespaces no PHP
14 de July de 2009 - 09:43
A possibilidade de uso dos namespaces é, talvez, a modificação mais significativa do PHP 5.3.0.
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 namespace?
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:
<?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:
<?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:
<?php
// Inclui o arquivo com a função
include("conexao-MySQL.php");
// Chama a função dentro do namespace
MeuProjeto/connect();
?>
Sintaxe alternativa
<?php
namespace MeuProjeto {
function connect() {
// Faz a sua conexão com o banco de dados
}
}
?>
Eu usei apenas exemplo com funções, mas os namespaces funcionam muito bem com classes e constantes também! Vale a pena experimentar.
Um grande abraço.
Fonte: Thiago Belem / Blog






Comentários (0)