If you voted against the Interface Default Methods RFC for #PHP, please take a moment to read some of the most recent mailing list replies, starting with @Crellโ€™s here: https://externals.io/message/120725#120798

I agree this feature goes against a lot of what Iโ€™ve learned as โ€œbest practices,โ€ but I did a lot of introspection on this and decided that this feature is good for the future of the PHP language. It unlocks a lot of potential.

[RFC] [Discussion] OPcache Static Cache - Externals

#externals - Opening PHP's #internals to the outside

@ramsey At this point, why not just support multiple inheritance? I find this dance around multiple inheritance weird and sad (in all those languages, not just php).

We already have traits which are multiple inheritance kinda-but-not-really.

And the diamond problem is clearly not a problem for traits. Not sure about default methods, didn't read the RFC in detail.

@chrastecky @ramsey the problem with traits is that you just can't use them as contracts in type system. All you can do is to use pair of trait+interface. Don't you think that interface with default implementations solves that ๐Ÿ™‚?
@codito @ramsey From practical point of view, yes. But IMO it's not a clean solution. Just allow extending multiple classes and be done with it.
@chrastecky @ramsey It's easy to say, but I believe it's harder to implement. How would `parent::` work? Especially if the parent class(es) would also have multiple parents? ๐Ÿซ 
@codito The parents either have different public/protected methods or you have to specify which methods, like you do for traits.
parent::class vs (theoretical) multi-inheritance - created on 3v4l.org

View the output of this script on 3v4l.org: the online PHP shell with 250+ PHP versions