terça-feira, 30 de agosto de 2011

Namespaces no PHP

A partir do PHP 5.3 foi efetivado o uso de namespaces. Mais qual o sentido dos namespaces?
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:
  1. namespace pv {
  2.     function hello($nome) {
  3.          return 'oi '.$nome;
  4.                }
  5.     }
E quando eu precisar chamar esse Hello eu faço assim:


  1. include('pv.php');

  2. include('pronto.php');
  3.        
  4.            echo pv\hello('Paulo Victor');
  5.     

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

Nenhum comentário:

Postar um comentário