Méthodes abstraites des traits en POO en PHP

Dans les traits, il est possible de déclarer certaines méthodes comme abstraites. Dans ce cas, la classe qui utilise ce trait sera obligée d'implémenter une telle méthode. Par ailleurs, les méthodes abstraites d'un trait ne peuvent pas être privées.

Regardons un exemple. Supposons que nous ayons le trait suivant :

TestTrait.php<?php
  trait TestTrait
  {
    public function method1()
    {
      return 1;
    }
    
    abstract public function method2();
  }
?>

Supposons que notre trait soit utilisé par la classe Test. La présence d'une méthode abstraite dans le trait obligera le programmeur à l'implémenter dans la classe, sinon ce sera une erreur PHP.

Créons la classe Test avec la méthode method2 :

Test.php<?php
  class Test
  {
    use TestTrait; // utilisons le trait
    
    // Implémentons la méthode abstraite :
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

Copiez le code de mon trait TestTrait et le code de ma classe Test. Supprimez de la classe la méthode method2. Assurez-vous que l'absence de son implémentation mène à une erreur PHP.