Полный цикл в digital

Traits

Traits представляют группу методов, которые могут быть добавлены в классы. Traits позволяют определять блоки функционала и многократно повторно использовать в классах без необходимости усложнять код классов, которые используют эти методы.

Traits определяются с помощью ключевого словва trait, который идет название трейта:

trait Printer { 
}

Traits могут содержать только статические и нестатические методы:

<?
trait Printer {
public function printSimpleText($text) { echo "$text<br>"; }
public function printHeaderText($text) { echo "<h2>$text<h2>"; }
}

Для применения классов трейта применяется оператор use, после которого указывается добавляемый трейт:

<?
trait Printer {
public function printSimpleText($text) { 
echo "$text<br>"; 
}
public function printHeaderText($text) { 
echo "<h2>$text<h2>"; 
}
}
class Message {
use Printer;
}
$myMessage = new Message();
$myMessage->printSimpleText("Hello World!");
$myMessage->printHeaderText("Hello PHP 8");

После добавления трейта с помощью оератора use класс может использовать его методы, как-будто они определены в самом этом классе.

Следует учитывать, что при наследовании методы трейта переопределяют унаследованные методы с тем же именем:

<?
class Data {
function print() { 
echo "Print from Data"; 
}
}
trait Printer {
function print() { 
echo "Print from Printer";
}
}
class Message extends Data {
use Printer;
}
$myMessage = new Message();
$myMessage->print(); // Print from Printer
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг