Мне интересно, почему PHP Trait (PHP 5.4) не может реализовать интерфейсы.
Обновление от user1460043 answer = > ... не может потребовать класс, который использует его для реализации определенного интерфейса
Я понимаю, что это может быть очевидно, потому что люди могут подумать, что если Class A
использует Trait T
, который реализует interface I
, чем Class A
должен использовать interface I
непрямо (и это не так, потому что Class A
может переименовывать методы trait).
В моем случае моя черта - это вызов методов из интерфейса, который реализует класс, использующий свойство.
Эта черта на самом деле является реализацией некоторых методов интерфейса. Итак, я хочу "разработать" в коде, что каждый класс, который хочет использовать мой признак, должен реализовать интерфейс. Это позволило бы Trait использовать методы класса, определенные интерфейсом, и быть уверенным, что они существуют в классе.