Dominando as características do PHP: a arma secreta para um código eficiente

Ao longo deste artigo, discutiremos alguns dos fundamentos do uso e criação de traits do PHP . Também abordaremos algumas práticas recomendadas para o uso eficaz de traits em seu código.

O conceito de traços é outro elemento importante do PHP OOP .

O uso de traits é um método de reutilização de código em várias classes sem a necessidade de usar herança.

Como uma das principais vantagens do uso de traits em uma base de código, os desenvolvedores podem definir um conjunto de métodos que podem ser reutilizados em várias classes, evitando a duplicação de código e tornando a base de código mais fácil de manter.



Traços do PHP – O que são?

Há apenas um tipo de herança suportado pelo PHP: uma classe filha só pode herdar de uma única classe pai.

Então, o que fazemos se precisarmos que uma classe herde vários comportamentos ao mesmo tempo?

  • Esse problema pode ser resolvido usando as características do PHP.

As traits do PHP são usadas para definir métodos que podem ser usados ​​em várias classes ao mesmo tempo.

Uma característica de objeto pode ter um método que pode ser usado em mais de uma classe, e o método pode ter um modificador de acesso (público, privado ou protegido) em seus métodos que pode substituir o método específico da classe.

Para declarar um trait Php, você deve usar a palavra-chave trait:

Sintaxe

<?php
trait TraitName {
// some code here…
}
?>

Há um uso de palavra-chave que pode ser usado para usar uma característica dentro de uma classe:

Sintaxe

<?php
class MyClass {
use TraitName;
}
?>

Aqui está um exemplo de como isso pode funcionar:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
trait greeting {
public function greet() {
echo "Good Morning! ";
}
}
class Welcome {
use greeting;
}
$obj = new Welcome();
$obj->greet();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

  • Nós declaramos uma característica aqui: saudação .
  • O próximo passo é criar uma classe chamada Welcome.
  • Essa classe é baseada em um trait e poderá usar todos os métodos desse trait, bem como os métodos do próprio trait.
  • Você pode simplesmente usar o traço de saudação em outras classes se elas forem obrigadas a usar a função greet() em suas funções.
Dessa forma, a duplicação de código será reduzida, pois não haverá mais a necessidade de redeclarar o mesmo método repetidas vezes.

Características Múltiplas do PHP

Vamos dar uma olhada em um exemplo em que múltiplas características são usadas:

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
27
28
29
30
31
32
<?php
trait morning {
public function mor_greet() {
echo "Good Morning! ";
}
}
trait afternoon {
public function aft_greet()
{
echo "Good Afternoon!";
}
}
class Welcome {
use morning;
}
class Welcome2 {
use morning, afternoon;
}
$object1 = new Welcome();
$object1->mor_greet();
echo "
";
$object2 = new Welcome2();
$object2->mor_greet();
$object2->aft_greet();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

Neste código são definidos dois traços: “ manhã ” e “ tarde ”. O trait “morning” contém um único método “ mor_greet() ” que ecoa a mensagem “ Good Morning! “. O trait “tarde” também contém um único método “ aft_greet() ” que ecoa a mensagem “ Boa tarde! “.

Duas classes são definidas: “ Welcome ” e “ Welcome2 ”. A classe “ Welcome ” usa a característica “ manhã ”, enquanto a classe “ Welcome2 ” usa as características “ manhã ” e “ tarde ”.

Dois objetos são instanciados das classes, $object1 da classe “ Welcome ” e $object2 da classe “ Welcome2 ”.

Quando o método “ mor_greet() ” é chamado em $object1 , ele ecoa “Bom dia!” para a tela. Quando o mesmo método é chamado em $object2 , ele também ecoa “ Bom dia! “.

Quando o método “ aft_greet() ” é chamado em $object2 , ele ecoa “Boa tarde!” para a tela .

A saída do código será:

Good Morning!
Good Morning! Good Afternoon!
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