Laravel 13.24, weekly updates and tip

Laravel 13.24

A few releases since last week in preparation for Laracon brings us to Laravel 13.24. Here are the highlights:

  • Add modelKeys() to Eloquent query builder in #60924
  • Add an array_keys validation rule in #60918
  • Add HEIC and additional AVIF support in #60922
  • Add NumberPrompt fallback in #60959
  • Fix appended accessors receiving null in toArray() in #60921
  • Fix Arr::forget() removing the wrong element in #61023

You may review the full branch diff on GitHub for a complete list of changes.

Weekly Journal

Last week was mostly Laracon US, then The Vibes. There was a good turnout for The Vibes. Shane and Simon took on an ambitious project. Their progress over the last few years is awesome. You can tell they really enjoy what they're working on. So I was glad to be at the inaugural event.

On the flight home, I (mostly Claude) decided to port Pest's TIA Engine to PHPUnit. While I do use Pest on my new side-projects, I never migrated my older projects. Nothing against Pest. Mostly just an old dog, new tricks sort of thing. So, I figured the old dogs should have cool stuff too. Took a little longer than the flight home, but I completed v0.1.1 of the PHPUnit TIA plugin.

After adopting TIA in my large test suites, I returned to Test Double. I tagged v0.2.0. So the library is well past feature-parity with Mockery. At this point I'm circling the wagons. I chatted with Nuno about adopting it within Pest. Eventually I want to demo it to Taylor. In the meantime, I'm building a free Test Double Converter to automate the migration. Reach out if you'd like to try Test Double - I'll run the Shift and get your suite passing again (provided it was passing before).

We're heading out on family vacay this week before the girls start school. So probably not much coding. Think I hit my weekly Claude limit anyway.

Weekly Tip

Mockery has a lot of footguns. If you've used it, you've probably learned things like:

  • shouldReceive doesn't verify without quantifiers.
  • shouldHaveBeenCalled/shouldNotHaveBeenCalled verifies invocation (as a callable), not method calls.
  • Parsing dense exception messages on "failure".

If you've watched my livestreams over the years, you know every 6 months or so I've tried to tackle these. Always unsuccessfully. So while I use Mockery, and respect it as the de facto mocking library in PHP, I've always had gripes.

Now, with AI, its within my capacity to build a successor. A modern PHP mocking library, that puts developer experience first.

Anyway, the tip this week isn't so much to switch, but to check your Mockery tests for those footguns.

View Archives →