On Wed, Feb 17, 2016 at 3:25 PM, Kevin Gessner <kgess...@etsy.com> wrote:
> Hello internals team! I'd like to propose an RFC to allow traits to > implement interfaces. > > I've noticed s pattern in Etsy's code and elsewhere, where a trait provides > a common implementation of an interface. Classes that use the trait are > required to also explicitly declare the interface to benefit. I propose > that traits be permitted to declare and implement interfaces. Classes that > use such a trait would then implement the interface, as though it were > declared on the class, without declaring the interface explicitly. > > I believe this small change would be a useful improvement to the OO > system. I've written a draft RFC, but I don't have karma to create the > wiki page for it. Could someone please grant wiki karma to my account, > kevingessner? > > I don't yet have an implementation, but I'll be starting on one once I've > posted the RFC. I look forward to your thoughts and feedback. > Without given an opinion on the RFC itself, this might be interesting for context: http://hhvm.com/blog/9581/trait-and-interface-requirements-in-hack HHVM already supports "trait Foo implements Iface" with the semantics that the interface is also implemented by the using class. Additionally HHVM supports a notion of "require implements Iface" which means that the using class must implement this interface. Nikita