Quando nosso código cresce ficamos a merce de uma repetição de nomes e isso pode levar nosso sistema maior a um grande problema com conflitos ou até um funcionamento totalmente irregular e fóra da camada de negócio.
Uma boa prática de desenvolvimento é utilizar prefixos por exemplo "user_login" mas com os namespaces ganhamos uma opção muito melhor!
Os namespaces permitem o desenvolvedor manusear nomes num escopo sem usar nomes grandes cada vez que a classe for referenciada, e resolver o problema de espaço global compartilhado sem fazer um código ilegível.
php.net
Um exemplo bem genérico, você tem 2 arquivos (pv.php e pronto.php) com funções que tem o mesmo nome (HELLO) elas tem diferenças entre elas poi a pv.php da um hello em português e a pronto.php da um hello em inglês como faço para distinguir as duas?
NAMESPACES eu escolho você
Adicionamos o namespaces nos arquivos olha o pv.php:
E quando eu precisar chamar esse Hello eu faço assim:php.net
Um exemplo bem genérico, você tem 2 arquivos (pv.php e pronto.php) com funções que tem o mesmo nome (HELLO) elas tem diferenças entre elas poi a pv.php da um hello em português e a pronto.php da um hello em inglês como faço para distinguir as duas?
NAMESPACES eu escolho você
Adicionamos o namespaces nos arquivos olha o pv.php:
- namespace pv {
- function hello($nome) {
- return 'oi '.$nome;
- }
- }
include('pv.php');
include('pronto.php');
- echo pv\hello('Paulo Victor');
Aqui estou passando meu nome no hello do pv então é simples:
namespace\metodo
Claro que esse exemplo foi TOTALMENTE genérico mas a idéia é de que se você cria uma classe sua e chama outra classe pronta talvez fique confuso ou dê conflito entre elas e melhor que usar prefixo é utilizar as possibilidades do PHP.
Espero ter ajudado.
@pv_fusion