Trait to takie stworzenie w PHP, które nie ma źródła, to znaczy, że wczytane do klasy nie pamięta, że jest z traita, tylko myśli, że jest z klasy.
Poniższy przykład dobrze to ilustruje:
namespace XX;
use YY\Bank;
trait BankAware{
/** @var Bank[] /*
public array $banks = [];
}
oraz klasa go zawierająca:
namespace ZZ;
use YY\BankAware;
use WW\Bank;
class Account{
use BankAware;
public Bank $otherBank;
}
teraz najciekawsz, co pokazuje nam reflrection class na obiekcie Account dla propertisu $banks…
Leave a Reply