Uporaba traitov v traitih
Traiti, podobno kot razredi, lahko uporabljajo tudi druge traite. Poglejmo si na primeru. Recimo, da imamo takšen trait z dvema metodama:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Recimo, da imamo še en trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Povežimo trait Trait1
traitu Trait2:
<?php
trait Trait2
{
use Trait1; // uporabimo prvi trait
private function method3()
{
return 3;
}
}
?>
Po takšni povezavi bo Trait2
poleg lastnih metod imel tudi metode
traita Trait1. Preverimo: naredimo
razred Test, povežimo z njim trait
Trait2 in se prepričajmo, da se bodo v našem razredu
pojavile metode prvega traita
in drugega:
<?php
class Test
{
use Trait2; // povežemo drugi trait
public function __construct()
{
echo $this->method1(); // metoda prvega traita
echo $this->method2(); // metoda prvega traita
echo $this->method3(); // metoda drugega traita
}
}
?>
Samostojno naredite enake traite,
kot jih imam jaz in jih povežite z razredom Test.
Naredite v tem razredu metodo getSum,
ki vrne vsoto rezultatov metod povezanih
traitov.