Namespaces em PHP
Namespaces em PHP possibilitam o agrupamento de classes, funções, constantes e interfaces no intuito de evitar o conflito de nomes, como se estivesse encapsulando esses itens, semelhantes aos diretórios do sistema operacional onde os arquivos de mesmo nome não podem coexistir em um mesmo diretório, mas em diretórios distintos.
Ao utilizar o namespaces temos mais liberdade para criar classes, funções, constantes etc, não sendo mais necessário utilizar prefixos para diferenciar seus nomes.
Por exemplo, criamos um arquivo “config.php” para definir as configurações de localização dos diretórios das classes:
spl_autoload_register(function($nameClass){
$dirClass = "class"; //Nome do arquivo
//define o caminho do arquivo: nome + \ ou / (depende do SO) + .php
$filename = $dirClass . DIRECTORY_SEPARATOR . $nameClass . ".php";
if(file_exists($filename)) { //Se o arquivo existir na pasta...
require_once($filename); //Inclui o arquivo no código
}
});
Definimos no arquivo “index.php” a chamada do arquivo de configuração “config.php”, o qual disponibiliza a classe “Cadastro”, armazenada no diretório “”
//incluir o arquivo com as configurações de localização dos diretórios
require_once("config.php");
$cadastro = new Cadastro();
$cadastro->setNome("Benedito Silva Júnior");
$cadastro->setEmail("suporte@criandobits.com.br");
$cadastro->setSenha("123456");
echo $cadastro; //escreve o objeto na tela
Quando for necessário extender outras classes, em outros diretórios, a partir do diretório raiz, utilizamos “\” antes no nome da classe: class Cadastro extends \Cadastro …
Para usar um outro namespaces, utilizamos:
use Cliente\Cadastro; //Utilizamos a classe Cadastro do namespaces Cliente
Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO.
CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:
Link do curso: https://go.hotmart.com/A18082772K
Como gerar arquivos XML em PHP
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits