An unbounded query works on the development database with four hundred rows and takes the site down at forty thousand. fields => ‘ids’ is the other half and…
After five years of 0.x, 1.0 in November is a commitment that a level will not start reporting new errors in a patch release. The practical difference is…
Level 8 checks calls on values that may be null, and it is the level where most projects discover how much of their code assumes otherwise. The temptation…
When a nullsafe operator short-circuits, everything to the right of it is skipped — including method arguments, which are not evaluated at all. The short-circuiting is the same…
A slow endpoint returning a 504 through nginx has three different timeouts that could be responsible, and they are configured by different directives. The distinction between a 502…
A memoisation cache keyed on object identity keeps every object it has ever seen alive, which in a long-running process is a leak with no upper bound. The…
The nullsafe operator turns a fatal error into a null, which is sometimes exactly right and sometimes the removal of the only signal that something upstream was wrong.…