Αλλαγές στα δικαιώματα πρόσβασης των μεθόδων των traits στο ΑΟΠ της PHP
Μέσα σε ένα trait μπορείτε να χρησιμοποιήσετε οποιοδήποτε τροποποιητή
πρόσβασης για μεθόδους (δηλαδή public, private
ή protected). Εάν χρειαστεί, ωστόσο,
στην ίδια την κλάση μπορείτε να αλλάξετε αυτόν τον τροποποιητή
σε άλλον. Για αυτό, στο σώμα του use μετά από
τη λέξη-κλειδί as πρέπει να καθορίσετε τον νέο
τροποποιητή.
Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε το ακόλουθο trait με μια ιδιωτική μέθοδο:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Ας συνδέσουμε το trait μας με την κλάση:
<?php
class Test
{
use TestTrait;
}
?>
Ας αλλάξουμε τη μέθοδο στην κλάση σε δημόσια:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Ας ελέγξουμε τη λειτουργία της δημόσιας μεθόδου από έξω από την κλάση:
<?php
$test = new Test;
echo $test->method(); // θα εμφανίσει '!!!'
?>