Laravel 13.21, weekly updates and tip

Laravel 13.21

This week brings us to Laravel 13.21. Here are the highlights:

  • Add #[RouteKey] class attribute to Eloquent models in #60841
  • Introduce RequestAttribute contextual Attribute in #60847
  • Add PNG, GIF, AVIF, and BMP output formats to the Image component in #60713
  • Add Image facade to defaultAliases in #60795
  • Add base64 validation rule in #60808
  • Added question mark escaping to Grammar::whereColumn() in #60832
  • Allow customizing the application builder used by Application::configure() in #60848

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

Weekly Journal

Last week I continued with the Human Shifts. Had another small one come in to upgrade from Laravel 11. I also had some client work. I don’t do contract work much anymore. But I have a few long-standing clients that I still support.

I needed a bit of a break on Friday so I took the opportunity to redesign my blog. I moved from Jigsaw to HydePHP. Mostly for the semantic and modern SEO markup. I also used ui.sh to generate a fresh, modern typography design. Other than some proofreading, Claude did all the work.

With the rest of this week, I’m hoping to wrap up the Human Shifts and client work. That way I can head to Laracon free and clear. I also want to continue working on Test Double. I'll likely generate the docs in tomorrow's livestream and continue to dogfood it.

As noted, I'll be at Laracon next week. If you're there too, please come say hi. I'm always glad to talk to my fellow Laravelians.

Weekly Tip

During the Human Shifts last week, I noticed an error - almost in real-time. One minute the app was running fine, then it failed with a name conflict.

Turns out the project was using intervention/image. With the release of Laravel 13.20, Laravel now includes its own Image facade and config. Thus creating some competition.

You may review the full issue, but the fix for this app was to disable Laravel Image service provider.

It seems Intervention also made a quick patch to rename their facade and config to avoid this collision.