Implementing ArrayAccess so a class can be used with square brackets makes it look like an array to every reader and to no static analyser. The interface predates…
With validate_timestamps off, PHP never notices a changed file — which is the point, and which means a deploy that does not clear the cache serves the previous…
Every framework had an event dispatcher and none of them shared an interface, so a library that wanted to emit events either picked one or invented its own.…
Building the message with the values in it produces a unique string per event, which means an aggregator sees a million distinct messages instead of one with a…
A closure has no serialisable representation in PHP, so any object holding one — a validator with a custom rule, a collection with a lazy callback — cannot…