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
class Retira {
}
function Retira() {
}
Classe criada por maria para retirar extrato de conta
class 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 :wacko:
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
namespace JoaoLibrary::Saque;
class Retira {
}
function Retira() {
}
Classe criada por maria para retirar extrato de conta
namespace MariaLibrary::Extrato;
class Retira {
}
function Retira() {
}
Chamando da seguinte forma
$a = new 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 ;/
Pergunta
Norivan Oliveira
Olá a todos,
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
class Retira { } function Retira() { }Classe criada por maria para retirar extrato de contaclass 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 :wacko: 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 banconamespace JoaoLibrary::Saque; class Retira { } function Retira() { }Classe criada por maria para retirar extrato de contanamespace MariaLibrary::Extrato; class Retira { } function Retira() { }Chamando da seguinte formaParece 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
:D
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.