Keli trait'ai OOP PHP
Klasėje galima naudoti ne vieną, o kelis
trait'us. Tai ir atskleidžia jų pranašumą
paveldėjimo atžvilgiu. Reikalingus naudojimui
klasėje trait'us galima nurodyti per kablelį
po raktažodžio use.
Pažiūrėkime pavyzdžiu. Tarkime, kad turime du trait'us. Pirmasis:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Antrasis:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Naudokime mūsų trait'us klasėje:
<?php
class User
{
use Helper1, Helper2; // prijungiame trait'us
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Sukurkite 3 trait'us su pavadinimais Trait1,
Trait2 ir Trait3. Tegul pirmame
trait'e būna metodas method1, grąžinantis
1, antrame trait'e - metodas method2,
grąžinantis 2, o trečiame trait'e
- metodas method3, grąžinantis 3.
Tegul visi šie metodai būna privatūs.
Sukurkite klasę Test, naudojančią
visus tris mūsų sukurtus trait'us. Sukurkite
šioje klasėje viešą metodą getSum,
grąžinantį prijungtų trait'ų metodų rezultatų sumą.