Përdorimi i treteve në trete
Tretet, ngjashëm me klasat, gjithashtu mund të përdorin treta të tjera. Le të shohim një shembull. Le të themi se kemi këtë trete me dy metoda:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Le të themi se kemi edhe një trete tjetër:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Le ta lidhim tretein Trait1
te treiti Trait2:
<?php
trait Trait2
{
use Trait1; // përdorim tretein e parë
private function method3()
{
return 3;
}
}
?>
Pas kësaj lidhjeje, do të rezultojë se Trait2
përveç metodave të veta do të ketë edhe metodat
e treteit Trait1. Le ta kontrollojmë këtë: le të krijojmë
klasën Test, të lidhim me të tretein
Trait2 dhe të sigurohemi që në klasën tonë
do të shfaqen metodat si nga treiti i parë,
ashtu edhe nga i dyti:
<?php
class Test
{
use Trait2; // lidhim tretein e dytë
public function __construct()
{
echo $this->method1(); // metoda e treteit të parë
echo $this->method2(); // metoda e treteit të parë
echo $this->method3(); // metoda e treteit të dytë
}
}
?>
Bëni vetë të njëjtat trete
si tek unë dhe lidhini ato me klasën Test.
Bëni në këtë klasë metodën getSum,
që kthen shumën e rezultateve të metodave të treteve
të lidhur.