PSR-2 predated return types, nullable types, multi-line arguments and trait conflict resolution, so every project had a house rule for each of them. PSR-12 writes them down. The…
Destructuring copied values, so normalising an array in place still needed a temporary variable and a loop that reads worse than the operation it performs. The unset after…
An application resolved against PHP 7.3 locally and deployed to a 7.2 server fails at some arbitrary point in the request, in a library, with an error nobody…
8.0 declares void on the template methods, so every override without it is an incompatible signature — which is a fatal error rather than a deprecation warning. It…
4.3 shipped a Mailer component alongside Swiftmailer rather than replacing it, and the two coexist for the whole of the 4.x line. The DSN is the part worth…
The question when writing a constructor is what you are allowed to type-hint for, and the answer is in the compiled container rather than in any documentation. It…