“Send the confirmation in the background” arrives as a requirement long after the code that sends it has settled into a controller method, wired to a request and…
Setter injection and a service locator both let a class acquire a collaborator at the moment it happens to need one, so nothing about the class announces how…
Xdebug is not something switched on for a request. Loading the extension replaces the engine’s function-call handlers for the lifetime of the process, so the overhead is paid…
A payment provider’s SDK ends up referenced in a controller, in two models, in a console command and in nine tests. Changing provider then means changing all of…
WP_Query covers a lot and stops short of a few things: ordering by a joined table, a GROUP BY you chose, an index hint, a comparison meta_query cannot…
Laravel 4 decides which of the app/config/{env}/ directories to merge by matching the machine’s hostname against a list you write in bootstrap/start.php. It works until someone joins with…
__autoload() is a single global function, so a process can have exactly one of them. That was tolerable when an application was the only thing in the tree…
One dependency has no stable release yet, so composer install refuses to resolve it. The answer that comes up first is “minimum-stability”: “dev”, which fixes that package and…
5.6’s online DDL gets summarised as “ALTER TABLE no longer locks”, and adding an index really is online now. Several other alterations are not, they are the ones…
A new custom post type has a working single view and an archive that 404s, and it starts working the moment somebody opens Settings → Permalinks. The rewrite…