Entendendo os Namespaces do PHP

Os namespaces do PHP são usados ​​para agrupar classes, funções e constantes em grupos lógicos e para garantir que as colisões de nomenclatura entre classes, funções e constantes sejam evitadas.

Existem vários benefícios de usar namespaces em seu código, como permitir que você identifique claramente o escopo e o contexto de cada classe, função e constante.

O objetivo deste artigo é apresentar a você os fundamentos dos namespaces PHP , incluindo como criar e usar namespaces, como definir classes dentro de namespaces e como importar e alias namespaces.

Os namespaces ajudam a tornar seu código mais legível e fácil de manter. Os namespaces fornecem aos desenvolvedores a capacidade de criar código flexível, reutilizável e escalável.



PHP Namespaces

Um namespace é um qualificador que resolve dois tipos diferentes de problemas:

  1. Uma maneira melhor de organizar as classes é agrupá-las para realizar a mesma tarefa.
  2. Se uma classe tiver o mesmo nome de outra classe, elas poderão compartilhar esse nome.

Por exemplo, uma tabela HTML pode ser descrita por várias classes, como Tabela, Linha e Célula.

Um conjunto separado de classes pode ser usado para descrever outros tipos de móveis, como uma mesa, uma cadeira ou uma cama.

É possível usar namespaces para organizar as classes em dois grupos diferentes, a fim de garantir que as duas classes Table e Table não sejam confundidas uma com a outra.


Benefícios do PHP NameSpace

Os namespaces são um recurso importante no PHP porque fornecem uma maneira de organizar e estruturar o código, tornando-o mais fácil de entender, manter e reutilizar.

Abaixo estão alguns dos principais benefícios do uso de namespaces:

  • Os namespaces do PHP evitam conflitos de nomenclatura entre diferentes partes de um aplicativo ou entre diferentes bibliotecas, permitindo que os desenvolvedores agrupem seu código sob um nome específico. Isso facilita a reutilização de código sem se preocupar com conflitos de nomenclatura.
  • Os namespaces fornecem uma maneira de organizar o código em grupos lógicos, facilitando a navegação e a compreensão de grandes bases de código. Ao usar namespaces, os desenvolvedores podem identificar rapidamente onde uma determinada classe ou função pertence.
  • Ao usar namespaces Php, você pode fazer alterações no código sem afetar outras partes do aplicativo ou da biblioteca. Isso facilita a manutenção e atualização do código ao longo do tempo.
  • Os namespaces do PHP facilitam a reutilização de código em diferentes partes de um aplicativo ou entre diferentes aplicativos. Ao encapsular o código em um namespace, você pode compartilhar e reutilizar o código com mais facilidade sem se preocupar com conflitos de nomenclatura.

Declarar Namespace

Para declarar namespaces, precisamos usar a palavra-chave namespace no início do arquivo:

A seguir está a declaração do namespace HTML:

Sintaxe

namespace Html;

A primeira coisa que precisa ser feita em um arquivo PHP é fazer uma declaração de namespace. Aqui está um código inválido:

Example: 

1
2
3
4
5
6
7
8
9
10
<?php
echo "Good Morning!";
namespace Html;
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Existem várias constantes , classes e funções que serão declaradas no namespace Html neste arquivo.
Você precisará criar uma classe User no namespace Html da seguinte maneira:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
namespace Html;
class User
{
public $username = "";
public $email = "";
public function welcome()
{
echo "<p>Welcome '". $this->username ."', Login Successfully with email ".$this->email.".</p>";
}
}
$user = new User();
$user->username = "johnmiller";
$user->email = "[email protected]";
$user->welcome();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

No exemplo acima, a classe de usuário tem duas propriedades públicas: $username e $email que são inicialmente definidas como strings vazias . Ele também possui um método público welcome() que ecoa uma mensagem de boas-vindas com o nome de usuário e o e-mail do usuário.

Nas próximas linhas de código, uma instância da classe User é criada e armazenada na variável $user. Os valores das propriedades $username e $email são definidos para esta instância da classe.

Por fim, o método welcome() é chamado na instância $user, que gera a mensagem de boas-vindas com os detalhes do usuário.

Aqui está outro exemplo de criação de uma classe de forma no namespace math:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
namespace Math;
function sum($x, $y) {
return $x + $y;
}
const PI = 3.14;
class Shape {
static function areaOfCircle($rad) {
return PI * $rad ** 2;
}
}
echo sum(10,3). "
";
echo PI. "
";
echo Shape::areaOfCircle(5);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Se você deseja uma abordagem mais organizada, pode ter namespaces aninhados uns nos outros.

Você deve criar um namespace chamado Html dentro do namespace Code e declará-lo da seguinte forma:

Sintaxe

namespace CodeHtml;

Usar espaço de nomes Php

O código que segue a declaração de um namespace é sempre executado dentro desse namespace, o que significa que as classes pertencentes a esse namespace podem ser instanciadas sem a necessidade de nenhum qualificador adicional.

Deve haver um namespace associado a uma classe para que ela seja acessada de fora do namespace.

Usar o namespace Html permitirá que você use as seguintes classes:

$username = new HtmlUsername();
$email = new HtmlEmail();

A palavra-chave namespace é uma ferramenta útil para usar quando várias classes do mesmo namespace estão abertas ao mesmo tempo.

As classes a seguir podem ser usadas sem usar o Htmlqualifier no namespace Html:

namespace Html;
$username = new Username();
$email = new Email();

Alias ​​de namespace

Um namespace ou classe pode se tornar mais legível, dando-lhe um alias para criá-lo o mais rápido possível. Isso é feito usando a palavra-chave “ use “:

Um namespace pode receber um alias usando a seguinte sintaxe :

use Html as H;
$username = new HUsername();

Um alias pode ser atribuído a uma classe da seguinte maneira:

use HUsername as U;
$username = new U();

Não se esqueça de compartilhar este artigo informativo e útil com seus colegas usando os botões sociais abaixo.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone