Definindo namespaces
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Embora qualquer código PHP válido possa estar contido em um namespace, apenas os seguintes
tipos de código são afetados por namespaces: classes (incluindo abstratas e traits), interfaces, funções e constantes.
Namespaces são declarados usando a palavra-chave namespace
.
Um arquivo contendo um namespace deve declarar o namespace
na parte superior do arquivo antes de qualquer outro código - com uma exceção: a
palavra-chave declare.
Exemplo #1 Declarando um único namespace
<?php
namespace MeuProjeto;
const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }
?>
Nota:
Nomes totalmente qualificados (ou seja, nomes que começam com uma barra invertida) não são permitidos em declarações
de namespace, porque esses construtos são interpretadas como expressões de namespace relativos.
O único construto de código permitido antes de uma declaração de namespace é a
declaração
declare
, para definir a codificação de um arquivo fonte. Além disso,
nenhum código não-PHP pode preceder uma declaração de namespace, incluindo espaço em branco extra:
Exemplo #2 Declarando um único namespace
<html>
<?php
namespace MeuProjeto; // fatal error - namespace must be the first statement in the script
?>
Além disso, diferente de qualquer outro construto do PHP, o mesmo namespace pode ser definido
em vários arquivos, permitindo a divisão do conteúdo de um namespace no sistema de arquivos.