php

  • An enum implementing two interfaces, and the one that was wrong

    An enum implementing both a presentation interface and a domain one, which is two responsibilities agreeing to share a file. The test that settled it was asking which…

  • A framework upgrade that was mostly deleting

    Laravel 11 in March, a skeleton with four fewer directories, and an application still carrying 2019’s structure.

  • The #[Override] that caught a library rename

    A minor version of a library renamed a protected hook method, and the attribute turned a silent behaviour change into a fatal error at load. Calling it internal…

  • The test that asserted the middleware order

    A framework upgrade that moved middleware registration from an array to a fluent configuration, where the order is no longer visible in one place. The order matters —…

  • PHPUnit 11, and a suite that had already been migrated

    11.0 in February, a year after the 10.0 migration did the hard part, and eleven deprecations that were all things 10 had warned about.

  • A readonly class with a wither, one release from clone-with

    8.3 relaxed __clone and did nothing for the case everybody has, which is a wither on a readonly class. The spread of get_object_vars into named arguments contains the…

  • The service we merged back

    Two services extracted in 2021, a team of four maintaining four pipelines, and forty-one of forty-four releases touching both.

  • The migration Rector wrote and we rewrote

    An automated refactor across 412 files, a diff of 8,000 lines, and three wrong hunks in it. The review nobody could actually do.

  • json_validate on a webhook body before anything else

    A webhook endpoint accepting bodies up to eight megabytes, and the signature check running after the decode. Validating before decoding costs one pass over the string and allocates…

  • A profile taken on the machine that was actually slow

    Three days of profiling locally to explain a production slowdown that did not exist locally. A local profile measures the code and a production profile measures the system,…