An observer that keeps a search index in step works perfectly until somebody writes a query builder update, at which point the rows change and nothing notices. This…
Every service eventually needs the same provider: bind the interfaces, register the client with its credentials, and set up whatever the framework does not do on its own.…
Dumping from inside a JSON endpoint, a queue worker or a middleware corrupts the output you were trying to inspect, so the debugging tool destroys the thing being…
Model::all() on a table with four hundred thousand rows hydrates four hundred thousand objects and then the process dies, having done nothing. chunkById rather than chunk is the…
Adding a method to a collection or a response means subclassing, and subclassing a framework class means every place that constructs one has to know about your subclass.…
A controller returning either a view or JSON depending on the request ends up with the same conditional in every action, and the decision has nothing to do…
The container is usually described in terms of constructor injection, so a method needing one dependency for one call ends up either taking it in the constructor or…
Custom exceptions have always had to be translated into a response somewhere in the handler, which turns one file into a growing chain of instanceof checks. 5.5 lets…
An email assembled in a controller — subject here, view there, attachments in a third place — cannot be tested without sending it, and the subject line ends…