Laravel 9.19, weekly updates, and 🔥 tip
Mostly fixes this week with one main feature bumping us to Laravel 9.19.
- Add support to detect dirty encrypted model attributes in #42888
- Handle cursor pagination when no items are found in #42963
- First-party support for Vite in #42785
You may review the full branch diff on GitHub for a complete list of changes.
This version bump and update is automated for subscribers to a Shifty Plan. If you don't have one of those, be sure to bump your constraint and run
composer update to get the latest features.
Last week Jess and I paired up a few times to finish version 1.0 of the Shift Workbench desktop app.
We got everything in a pretty good place by Thursday. So I spent Friday adding some polish like Dark Mode and the ability to kill potentially rogue builds.
I soft launched over the weekend and did some preliminary testing. Once I felt things were in a good place, I took the rest of the weekend off (cause it's the weekend).
Yesterday I made a few more tweaks to Shift's automation. This morning, Jess and I broke ground on a Vite Converter. Vite will become the default frontend build tool as of today's release. Since Jess was working on this, I got a first-hand review of the necessary changes. I hope to release the Vite Converter for FREE later in the week.
I'll also do another live stream Wednesday. This time I'll switch gears and work on the Shift codebase to add some automation for converting common ternary expressions to use the null-safe operator.
I saw a tweet from Mohamed last week about following Laravel conventions. I couldn't agree with this more.
Similar to the actions I mentioned in last week's tip, you hear a lot of new patterns for writing Laravel. But you don't hear enough about following the conventions.
The truth is most of these things you hear about are the exception. There are not many applications adopting things like modules, DDD, or whatever.
Laravel's structure is well thought out and proven across thousands of applications over nearly a decade.
Of course, everything is a trade-off. So, the point is, you should have a very compelling reason to structure your code differently or follow your own conventions.