Laravel 13.5, weekly updates and tip

Laravel 13.5

I was out for last week's release, so we're jumping all the way to Laravel 13.5. Here are the highlights:

  • Support #[Delay] on queued mailables in #59580
  • Added inheritance support for controller using #[Middleware] in #59597
  • Add first-class Redis Cluster support for Queue and ConcurrencyLimiter in #59533
  • More enum support in #59637, #59646, and #59659
  • Add ability to detect unserializable values returned from cache in #59630
  • Allow passing closures to updateOrCreate and firstOrNew in #59647
  • Add methods to inspect queue jobs in #59511
  • Introduce "strict mode" for Form Requests in #59430

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

Weekly Journal

Last week I was on vacation with the girls for Spring Break. Other than support emails, I never really got on the computer. It was great. You should step away from it all sometimes. You know, touch grass.

Anyway, this week I'm giving some focus to the Tests Generator. It's been a while since I've updated this Shift. In the last few months, there have been more support emails. This has always been the most support heavy Shift as it actually boots your application via artisan route:list. Many devs don't realize all the configuration and environment customizations they need for their app to just boot.

Aside from making it more resilient, I also need to modernize some of the assertions used and version constraints. Once all that's done, I want to give it some AI prompts like the Laravel 13.x Shift. That way you can use AI to automate assertions for some of your application specific logic and additional code paths.

In fairness, you can use AI to generate tests. I do for a single class or additional code path. But you'd probably burn through your limits if you tried to do it for an entire app. As such, I think there's still a use case for running the Tests Generator - to generate an initial test suite for your application.

Weekly Tip

I've been out of the code, so I don't have a technical tip this week. However, I realized something while reviewing the features for Laravel 13.5.

I remember noting bumping up against the controller middleware inheritance issue in a previous newsletter. Now it seems #59597 fixes that - at least when using PHP attributes.

I think you're going to continue to see features built on new features and conventions. So while Laravel may be moving away from "breaking changes", you still need a thorough upgrade. Otherwise, as always, you'll accumulate technical debt.

In this case, the Laravel 13.x Shift adopts PHP attributes as part of the upgrade. There is also a Workbench task to do so.

View Archives →