Interface Default Methods improves backwards compatibility when changing interfaces, but also add a way to have multi-inheritance in PHP.
Sometimes a interface should have a sensible default/example.
Larry Garfield's comments here and here on the mailing list were convincing (read them!) But also every day I Ctrl+Click a method call, only to reach the interface instead of the implementation. More often than not, I'm looking for the implementation, so this slows me down. A default instead of a trait is less code, and smoother developer experience (DX).
Only if we deprecate traits, and move all traits features to interfaces
would help to bring the language in line with what its already being done by interfaces and traits, but in a way that's integrated with the language and easier for tooling to peek into.
To me looks makes more sense to separate things.
This RFC proposes a way to have multi-line short closures — closures that don't need explicit use
statements, but can still have multiple lines and a return statement.
The "pipe operator" |>
allows you to chain multiple function calls in a more convenient way.
Chain method on newly created objects without parentheses