O czym nie mówią traity

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

Your email address will not be published. Required fields are marked *