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

Трейты

9 марта 2017

Трейты были добавлены в 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