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ė
trait TraitName {
// treito savybės ir metodai
public function method1() {
// implementacija
}
}
Pavyzdys
Sukurkime paprastą treitą ir prijunkime jį prie klasės:
<?php
trait Logger {
public function log($message) {
echo "Registruojama: " . $message;
}
}
class User {
use Logger;
}
$user = new User();
$user->log("Vartotojas sukurtas");
?>
Kodo vykdymo rezultatas:
'Registruojama: Vartotojas sukurtas'
Pavyzdys
Klasė gali vienu metu naudoti kelis treitus:
<?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:
'2023-11-15 14:30:00'