Статья
Трейты

Трейты

28 марта 2018

Трейты были добавлены в PHP 5.4. Трейты - это классы с частичной реализацией необходимого функционала, при этом невозможно создать самостоятельный экземпляр трейта.

class Cat
{
    public function meow() {
        echo 'Meow...';
    }
}

trait SayMurr {
    public function meow() {
        parent::meow();
        echo 'Murr!';
    }

}

class BlackCat extends Cat
{
    use SayMurr;
}

$cat = new BlackCat();
$cat->meow();

Результат выполнения кода:

Meow...Murr!

 

Приоритет наследования

1) Методы в трейте переопределяют унаследованные методы класса.

2) Методы из класса переопределяют методы из трейта. 


Несколько трейтов
Несколько трейтов могут быть вставлены в класс путем их перечисления в директиве use, разделяя запятыми.


Источники:

http://php.net/manual/ru/language.oop5.traits.php