Postagem

Aqui é onde faço postagens de coisas que acho interessante.

Namespaces no PHP

Postagem do dia 01/01/1970 na categoria PHP



Namespaces no PHP são projetados para resolver problema de escopo em bibliotecas PHP extensas. No PHP, todas as definições de classes são globais. Assim, quando uma autor de uma biblioteca cria vários utilitários ou públicas classes para uma biblioteca, ele precisa ter cuidado com a possibilidade de outra biblioteca com mesma funcionalidade exista e assim escolher nomes únicos para que estas bibliotecas possam ser usadas juntas. Normalmente isto é resolvido prefixando o nome da classe com uma string única.
Exemplo: Classes de banco de dados tem prefixo My_Library_DB, etc. Com o crescimento da biblioteca, mais prefixos são adicionados, criando então nomes grandes.

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.

Namespaces está disponível a partir do PHP 5.3.0. Esta seção é experimental e sujeita a mudanà§as. (Fonte)

Exemplo básico de como usar namespace no PHP


<?php
	namespace A;
	function get(){ echo 'Funcionou, A'; }
 
	namespace B;
	function get(){ echo 'Funcionou, B'; }
 
	\A\get();
	\B\get();


Agora um exemplo com classe

<?php
namespace People;

class Object{

	private $_name; // Atributo que armazena nome do objeto

	/**
	 * Metodo construtor da classe
	 * @throw Informe um nome para o objeto
	 */
	public function __construct( $name = null )
	{
		if( $name == null ){
			print "Informe um nome para o objeto";
		}else{
			$this->_name = $name;
		}
	}


	/**
	 * Metodo que retorna nome do objeto
	 * @return void
	 */
	public function getName()
	{
		print $this->_name;
	}
}


Agora para usar a classe

lt?php
$obj = new \People\Object("Tayron");
$obj->getName();



Deixe seus comentários abaixo: