Tutorial PHP

PHP INÍCIO Introdução ao PHP Instalação do PHP Sintaxe PHP Comentários PHP Variáveis ​​PHP PHP Eco/Impressão Tipos de dados PHP Strings PHP Números PHP Matemática PHP Constantes PHP Operadores PHP PHP If...Else...Elseif Chave PHP Loops PHP Funções PHP Matrizes PHP PHP Superglobais PHP RegEx

Formulários PHP

Manipulação de formulários PHP Validação de formulário PHP Formulário PHP obrigatório URL/e-mail do formulário PHP Formulário PHP completo

PHP Avançado

Data e hora do PHP Incluir PHP Manipulação de arquivos PHP Arquivo PHP Abrir/Ler Arquivo PHP Criar/Gravar Upload de arquivo PHP Cookies PHP Sessões PHP Filtros PHP Filtros PHP Avançados Funções de retorno de chamada do PHP PHP JSON Exceções do PHP

PHP OOP

PHP O que é POO Classes/objetos PHP Construtor PHP Destruidor PHP Modificadores de acesso PHP Herança PHP Constantes PHP Classes abstratas PHP Interfaces PHP Características PHP Métodos estáticos PHP Propriedades estáticas do PHP Namespaces PHP Iteráveis ​​PHP

Banco de dados MySQL

Banco de dados MySQL MySQL Connect MySQL Criar banco de dados MySQL Criar Tabela Dados de inserção do MySQL MySQL Obter Último ID MySQL Inserir Múltiplo Preparado para MySQL Dados de seleção do MySQL MySQL Onde MySQL Ordenar por Dados de exclusão do MySQL Dados de atualização do MySQL Dados de limite do MySQL

PHP XML

Analisadores XML PHP Analisador PHP SimpleXML PHP SimpleXML - Obter PHP XML Expatriado PHP XML DOM

PHP - AJAX

Introdução AJAX PHP AJAX Banco de dados AJAX XML AJAX Pesquisa em tempo real AJAX Enquete AJAX

Exemplos PHP

Exemplos PHP Compilador PHP Teste PHP Exercícios PHP Certificado PHP

Referência PHP

Visão geral do PHP Matriz PHP Calendário PHP Data do PHP Diretório PHP Erro PHP Exceção PHP Sistema de arquivos PHP Filtro PHP PHP FTP PHP JSON Palavras-chave PHP PHP Libxml Correio PHP Matemática PHP PHP Diversos PHP MySQLi Rede PHP Controle de saída PHP PHP RegEx PHP SimpleXML Fluxo PHP String PHP Manipulação de variáveis ​​PHP Analisador XML PHP PHP Zip Fusos horários PHP

Namespaces PHP


Namespaces PHP

Namespaces são qualificadores que resolvem dois problemas diferentes:

  1. Eles permitem uma melhor organização agrupando classes que trabalham juntas para realizar uma tarefa
  2. Eles permitem que o mesmo nome seja usado para mais de uma classe

Por exemplo, você pode ter um conjunto de classes que descrevem uma tabela HTML, como Tabela, Linha e Célula, enquanto também possui outro conjunto de classes para descrever móveis, como Mesa, Cadeira e Cama. Os namespaces podem ser usados ​​para organizar as classes em dois grupos diferentes, evitando que as duas classes Table e Table sejam misturadas.


Declarando um namespace

Os namespaces são declarados no início de um arquivo usando a namespacepalavra-chave:

Sintaxe

Declare um namespace chamado Html:

namespace Html;

Nota: Uma namespacedeclaração deve ser a primeira coisa no arquivo PHP. O código a seguir seria inválido:

<?php
echo "Hello World!";
namespace Html;
...
?>

Constantes, classes e funções declaradas neste arquivo pertencerão ao namespace Html :

Exemplo

Crie uma classe Table no namespace Html:

<?php
namespace Html;
class Table {
  public $title = "";
  public $numRows = 0;
  public function message() {
    echo "<p>Table '{$this->title}' has {$this->numRows} rows.</p>";
  }
}
$table = new Table();
$table->title = "My table";
$table->numRows = 5;
?>

<!DOCTYPE html>
<html>
<body>

<?php
$table->message();
?>

</body>
</html>

Para maior organização, é possível ter namespaces aninhados:

Sintaxe

Declare um namespace chamado Html dentro de um namespace chamado Code:

namespace Code\Html;

Como usar namespaces

Qualquer código que segue uma namespacedeclaração está operando dentro do namespace, então as classes que pertencem ao namespace podem ser instanciadas sem nenhum qualificador. Para acessar classes de fora de um namespace, a classe precisa ter o namespace anexado a ela.

Exemplo

Use classes do namespace Html:

$table = new Html\Table()
$row = new Html\Row();

Quando muitas classes do mesmo namespace estão sendo usadas ao mesmo tempo, é mais fácil usar a namespacepalavra-chave:

Exemplo

Use classes do namespace Html sem a necessidade do Html\qualifier:

namespace Html;
$table = new Table();
$row = new Row();

Alias ​​de namespace

Pode ser útil dar a um namespace ou classe um alias para facilitar a escrita. Isso é feito com a usepalavra-chave:

Exemplo

Dê um alias a um namespace:

use Html as H;
$table = new H\Table();

Exemplo

Dê um alias a uma classe:

use Html\Table as T;
$table = new T();