Publicidade (Anuncie Aqui)

Usando Namespaces no PHP

Usando Namespaces no PHP

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. ;)

Você também vai gostar de ler:

Postado em Artigos, PHP, Tutoriais

Com as tags , , , , , , , , , , , , , , , , , , , , ,

Escrito por Thiago Belem

Gostou desse artigo?

Não se esqueça de assinar o RSS e divulgue-o para o mundo:

View Comments

  1. Muito bom mesmo, só faltou salientar a partir de que versão do PHP os namespaces estão disponíveis, só da 5.3.0 em diante?

  2. Danillo disse:

    mto interessante.. vlw a dica! =)

  3. Renato Reis disse:

    Isso funcionaria tipo um label? Da pra usar algo do tipo
    Goto MeuProjeto?

    • Thiago Belem disse:

      @Renato
      Não.. Seria mais como uma classe que agrupa funções e variáveis… Tá muito longe de paracer com o Goto… Goto são apenas “pontos-chave” no código.

    • hugo leonardo disse:

      e lembrando que Goto é considerado por muita gente como gambiarra. se abusar dele pode acabar perdendo o controle do seu código. eu mesmo nunca aprendi isso ae, meu professor se recusava a ensinar. kkk

blog comments powered by Disqus