Abstraktné metódy traitov v OOP v PHP
V traitoch je možné niektoré metódy deklarovať ako abstraktné. V tomto prípade ich musí trieda, ktorá používa tento trait, implementovať. Abstraktné metódy traitu nesmú byť súkromné.
Pozrime sa na príklad. Predpokladajme, že máme takýto trait:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Predpokladajme, že náš trait používa trieda Test.
Prítomnosť abstraktnej metódy v traite bude vyžadovať
od programátora jej implementáciu v triede, inak
dôjde k chybe PHP.
Vytvorme triedu Test spolu s
metódou method2:
<?php
class Test
{
use TestTrait; // používame trait
// Implementujeme abstraktnú metódu:
public function method2()
{
return 2;
}
}
new Test;
?>
Skopírujte kód môjho traitu TestTrait
a kód mojej triedy Test. Odstráňte z
triedy metódu method2. Presvedčte sa,
že absencia jej implementácie povedie
k chybe PHP.