Metodi astratti dei trait nella OOP in PHP
Nei trait è possibile dichiarare alcuni metodi come astratti. In questo caso, la classe che utilizza questo trait sarà obbligata a implementare tale metodo. Inoltre, i metodi astratti del trait non possono essere privati.
Vediamo un esempio. Supponiamo di avere il seguente trait:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Supponiamo che il nostro trait venga utilizzato dalla classe Test.
La presenza di un metodo astratto nel trait obbligherà
il programmatore a implementarlo nella classe, altrimenti
si verificherà un errore PHP.
Creiamo la classe Test insieme al
metodo method2:
<?php
class Test
{
use TestTrait; // utilizziamo il trait
// Implementiamo il metodo astratto:
public function method2()
{
return 2;
}
}
new Test;
?>
Copia il codice del mio trait TestTrait
e il codice della mia classe Test. Rimuovi dalla
classe il metodo method2. Verifica
che l'assenza della sua implementazione porti
a un errore PHP.