Ключова дума trait

Ключовата дума trait се използва за създаване на трейтове - механизъм за повторно използване на код в PHP. Трейтовете приличат на класове, но са предназначени за групиране на функционалност в малки и разбираеми единици. Те могат да се включват в класове с помощта на ключовата дума use.

Синтаксис

phptrait TraitName {
  // свойства и методи на трейта
  public function method1() {
    // реализация
  }
}

Пример

Нека създадем прост трейт и го включим в клас:

php<?php
  trait Logger {
    public function log($message) {
      echo "Logging: " . $message;
    }
  }

  class User {
    use Logger;
  }

  $user = new User();
  $user->log("User created");
?>

Резултат от изпълнението на кода:

php'Logging: User created'

Пример

Един клас може да използва няколко трейта едновременно:

php<?php
  trait Timestamp {
    public function getCurrentTime() {
      return date('Y-m-d H:i:s');
    }
  }

  trait Serializer {
    public function toJson($data) {
      return json_encode($data);
    }
  }

  class Product {
    use Timestamp, Serializer;
  }

  $product = new Product();
  echo $product->getCurrentTime();
?>

Резултат от изпълнението на кода:

php'2023-11-15 14:30:00'

Вижте също

  • командата class,
    която се използва за деклариране на класове
  • командата interface,
    която се използва за деклариране на интерфейси