PHP

Declaração de Namespaces no PHP 7

Por em

Essa novidade, é uma implementação melhorada para namespaces no PHP 7. Agora é possível definir Grupos de declarações.

Essa atualização, torna o código mais legível e mais fácil para importar classes, funções e constantes. Antes, a implementação era toda separada e agora podemos agrupar e importar várias estruturas de um namespace em comum.

Antes do PHP 7

use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

Com o PHP 7

use some\namespace\{ClassA,ClassB, ClassC as C};

Apenas um linha de declarações para definirmos as classes A, B e C. E para o caso de funções e constantes:

use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};

Implementando um teste básico

Para criar um pequeno teste vamos criar um diretório chamado model e criar nossas classes: ClassA.php, ClassB.php e ClassC.php e nesses arquivos apenas implementar uma classe básica respeitando o nome de cada uma ex:

class ClassA
{

}

Como essas classes estão no mesmo diretório vamos definir um namespace para elas assim:

namespace model;

Agora vamos criar um arquivo na raiz do projeto com o nome index.php e nesse arquivo vamos definir um autoload básico para chamar nossas classes:

function __autoload($class){

    include_once "{$class}.php";
}

Perfeito! Vamos implementar nosso index.php e realizar o teste com esse grupo de classes utilizando o Use:

<?php

use model\{ClassA as A,ClassB as B, ClassC};


function __autoload($class){

    include_once "{$class}.php";
}


$a = new A;
$b = new B;
$c = new ClassC;

Realize o teste e repare que o script vai rodar tranquilamente. Deixe seus comentários aqui.

Forte abraço!