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 :
<?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 :
<?php
class Test
{
use TestTrait; // utilisons le trait
// Implémentons la méthode abstraite :
public function method2()
{
return 2;
}
}
new Test;
?>
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.