Namespaces
PHP Manual

Usando namespaces

Cada classe e função em um namespace pode ser referenciado pelo nome completo - e.g. MyProject\DB\Connection ou MyProject\DB\connect - em algum momento.

Exemplo #1 Usando o nome com namespace

<?php
    
require 'MyProject/Db/Connection.php';
    
$x = new MyProject\DB\Connection;
    
MyProject\DB\connect();
?>

Namespaces podem ser importados para o contexto atual (global ou namespace) usando o operador use. A sintaxe para o operador é:

<?php
/* ... */
use Some\Name as Othername;

// The simplified form of use:
use Foo\Bar;
// which is the same as :
use Foo\Bar as Bar;
?>
O nome importado funciona da seguinte forma: cada vez que o compilador encontra um nome local Othername (o nome sozinho ou com prefixo para nome grande separado por \) o nome importado Some\Name o substitue.

use pode ser usado somente no escopo global, não dentro de função ou classe. Nomes importados tem efeito a partir do ponto do import até o final do arquivo atual. Ele é recomendado colocá-lo no início do arquivo para evitar confusão.

Exemplo #2 Importando e acessando namespace

<?php
    
require 'MyProject/Db/Connection.php';
    use 
MyProject\DB;
    use 
MyProject\DB\Connection as DbConnection;
    
    
$x = new MyProject\DB\Connection();
    
$y = new DB\connection();
    
$z = new DbConnection();
    
DB\connect();
?>

Nota: A operação import é apenas em tempo de compilação, todos nomes locais são convertidos para seus equivalentes nomes completos pelo compilador. Note que não é traduzido nomes em strings, então callbacks não respeitará regras do import.


Namespaces
PHP Manual