Laravel 13.2, weekly updates and tip
Laravel 13.2
While there was a fast-follow tag for Laravel 13 last week, this is our first weekly tag for Laravel 13 bringing us to Laravel 13.2.0.
Here are the highlights:
- Allow for passing enums to PHP attributes in #59297 and #59278
- Improve raw SQL binding substitution performance in #59277
- Add
releaseOnSignalparameter towithoutOverlappingin #59298 - Add more symmetrical, expressive PHP attributes in #59284
- Fix
schedule:listdisplaying the correct timezone in #59286 - Fix table incrementing for
Pivotmodels in #59336 - Ensure
#[ScopedBy]with inheritance in #59332 - Allow opting out of Job exception reporting in #59308
- Allow passing multiple arrays to
has()for model factories in #59343 - Allow
#[Backoff]PHP attribute to be variadic in #59354
You may review the full branch diff on GitHub for a complete list of changes.
Weekly Journal
Last week, I officially launched the Laravel 13.x Shift. There were a few last minute changes, then support as early-adopters began upgrading to Laravel 13.
I think most of the initial rough-edges that are inevitable with any launch have been smoothed out. This week seems to mostly be edge cases, and adopting more changes as they emerge in the weekly releases.
While I didn't know about it before the release, Laravel did offer a new /upgrade skill for Laravel 13. It's effectively a copy of the Upgrade Guide, with some pre-context. I shared this on the socials, but I agree Laravel should offer something first-party. In an indirect way, it's a nod to the value of Shift.
I think the challenge this presents for Shift is really the same challenge it's always had - convincing DIYers that Shift does more. AI's goal is compatibility. It uses composer and your test suite (if you have one) as its benchmark. Shift goal is that your applications looks and feels like it's always been running the latest version of Laravel. So Shift's benchmark is well above AI, or even the Upgrade Guide.
Since you're reading this, you probably already know that. But this skill will unfortunately prevent new users from trying Shift. Unless I can reach and convince them of its higher goal.
Weekly Tip
One of the initial bugs came about with PHP Attributes. I didn't know (nor did Claude) they do not support multiline values. For example, the following is not supported:
#[Signature('shift:rerun {number : The Shift number} {--close : Close the previous run}')]
Values can not contain a literal line break. It must be encoded (e.g. \n). You also can't use variables, complex expressions, or invocation. However, you can reference language or class constants, including enums (which Laravel 13.2 just added more support).