Апстрактне методе трејтова у ООП у PHP
У трејтовима се неки методи могу декларисати као апстрактни. У том случају, класа која користи овај трејт мораће да имплементира такав метод. При томе, апстрактни методи трејта не могу бити приватни.
Погледајмо на примеру. Нека имамо овакав трејт:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Нека наш трејт користи класа Test.
Присуство апстрактног метода у трејту ће
програмера обавезати да га имплементира у класи, у супротном
ће бити грешка у PHP-у.
Направимо класу Test заједно са
методом method2:
<?php
class Test
{
use TestTrait; // користимо трејт
// Имплементирамо апстрактни метод:
public function method2()
{
return 2;
}
}
new Test;
?>
Копирајте код мог трејта TestTrait
и код моје класе Test. Избришите из
класе метод method2. Уверите се
да ће одсуство његове имплементације довести
до грешке у PHP-у.