Χρήση Traits σε Traits
Τα traits, όπως και οι κλάσεις, μπορούν επίσης να χρησιμοποιούν άλλα traits. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε το ακόλουθο trait με δύο μεθόδους:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Ας υποθέσουμε ότι έχουμε επίσης ένα ακόμη trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Ας συνδέσουμε το trait Trait1
στο trait Trait2:
<?php
trait Trait2
{
use Trait1; // χρησιμοποιούμε το πρώτο trait
private function method3()
{
return 3;
}
}
?>
Μετά από αυτή τη σύνδεση, το Trait2
εκτός από τις δικές του μεθόδους θα έχει και τις μεθόδους
του trait Trait1. Ας το ελέγξουμε: ας φτιάξουμε
μια κλάση Test, ας συνδέσουμε σε αυτήν το trait
Trait2 και ας βεβαιωθούμε ότι στην κλάση μας
θα εμφανιστούν μέθοδοι τόσο από το πρώτο trait,
όσο και από το δεύτερο:
<?php
class Test
{
use Trait2; // συνδέουμε το δεύτερο trait
public function __construct()
{
echo $this->method1(); // μέθοδος του πρώτου trait
echo $this->method2(); // μέθοδος του πρώτου trait
echo $this->method3(); // μέθοδος του δεύτερου trait
}
}
?>
Δημιουργήστε μόνοι σας τα ίδια traits,
όπως εγώ και συνδέστε τα στην κλάση Test.
Δημιουργήστε σε αυτήν την κλάση μια μέθοδο getSum,
που επιστρέφει το άθροισμα των αποτελεσμάτων των μεθόδων των trait
που συνδέθηκαν.