Possivelmente em Abril o pessoal irá lançar definitivamente a nova versão do PHP, 5.3, trazendo algumas novidades legais, dentre elas uma que achei fantástica, a Namespaces.
O problema
Em um projeto grande onde não só você vai mexer ou mesmo em que usa muitas blibliotecas diferentes ao mesmo tempo não é dificil ocorrer de você escrever uma classe com nome duplicado
Classe criada por jõao para retirar dinheiro do banco
CODE
class Retira {
}
function Retira() {
}
}
function Retira() {
}
Classe criada por maria para retirar extrato de conta
CODE
class Retira {
}
function Retira() {
}
}
function Retira() {
}
Se essas duas classes forem incluídas no mesmo local e chamarem o método Retira já imaginou a confusão que vai dar? o cliente vai tentar sacar e invés de sacar vai sair o extrato
A solução
Assim o pessoal do PHP resolveu dar um jeito nisso criando o Namespaces, agora você pode fazer isto:
Classe criada por jõao para retirar dinheiro do banco
CODE
namespace JoaoLibrary::Saque;
class Retira {
}
function Retira() {
}
class Retira {
}
function Retira() {
}
Classe criada por maria para retirar extrato de conta
CODE
namespace MariaLibrary::Extrato;
class Retira {
}
function Retira() {
}
class Retira {
}
function Retira() {
}
Chamando da seguinte forma
CODE
$a = new MariaLibrary::Extrato::Retira;
MariaLibrary::Extrato::Retira();
MariaLibrary::Extrato::Retira();
Parece nada mas quando você começa a usar faz uma diferença legal, principalmente trabalhando com frameworks. O problema é acostumar ;/
Baixe o PHP 5.30 e teste você mesmo: http://snaps.php.net/php5.3-200901090330.tar.gz