Raktažodis trait

Raktažodis trait naudojamas treitų – PHP kodo pakartotinio naudojimo mechanizmo – kūrimui. Treitai yra panašūs į klases, bet skirti funkcionalumui grupuoti į mažas ir suprantamas dalis. Juos galima prijungti prie klasių naudojant raktažodį use.

Sintaksė

phptrait TraitName {
  // treito savybės ir metodai
  public function method1() {
    // implementacija
  }
}

Pavyzdys

Sukurkime paprastą treitą ir prijunkime jį prie klasės:

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

  class User {
    use Logger;
  }

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

Kodo vykdymo rezultatas:

php'Registruojama: Vartotojas sukurtas'

Pavyzdys

Klasė gali vienu metu naudoti kelis treitus:

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();
?>

Kodo vykdymo rezultatas:

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

Taip pat žiūrėkite

  • komandą class,
    kuri naudojama klasėms deklaruoti
  • komandą interface,
    kuri naudojama sąsajoms (interface) deklaruoti