One component in an application that does not use the framework, which is what the components are for and is easy to forget. A migration tool that must…
A second year of the same decision, revisited on schedule rather than by drift. The number going down on its own is the argument for logging deprecations rather…
6.4 and 7.0 shipped in the same week, which is the release model working as designed and is still a decision. Taking the long-term-support release and stopping is…
A command with 80 lines in execute(), none of which could be called from anywhere else, including a test. The command should parse input, call one thing, and…
When two services share an interface, Symfony resolves the ambiguity using the parameter name, which makes a rename a behaviour change. A parameter name becoming part of the…
Wrapping a handler in a transaction inside the handler couples the persistence decision to the business logic; a middleware applies it uniformly. The ordering is the part that…
6.1 adds argument and return value resolution that removes the serialisation boilerplate from a controller action. Moving serialisation out of the action makes the controller shorter and moves…