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:

TestTrait.php<?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:

Test.php<?php
  class Test
  {
    use TestTrait; // utilizziamo il trait
    
    // Implementiamo il metodo astratto:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

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.