Laravel 9.27, weekly updates, and 🔥 tip

Laravel 9.27

A couple minor features this week bumping us to Laravel 9.27. Here are the highlights:

  • Translation of the default message of the validator in #43837
  • Prompt to create SQLite database in #43867
  • Call prepare() on HttpException responses in #43895
  • Make the model:prune easier to extend in #43919

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.

Weekly Journal

Last week I launched spawning additional worker servers dynamically based on queue load. I continued to monitor this as the week went on. I also added some additional logic to immediately spawn multiple workers whenever Laravel tags a new release. This seemed to work well for today's release.

I also wrote a blog post on this feature. It focuses more on the backstory, as well as the business decisions to implement it. Of course, if you're interested in the development, you may watch the live streams.

I spent the end of the week improving Shift's automation based on feedback from support emails. These included tweaks to the Vite Converter, Tests Generator, and some Workbench tasks.

This week is a bit light for me. No Human Shifts at the moment. So I have more free time. I've been using it to continue development of the curl converter which I started in last week's live stream. I hope to get all the tests passing in this week's live stream and tag the initial release.

🔥 Tip

As a follow up to last week's tip about testing jobs which spawn other jobs, Sonny Spaan replied that you may pass which jobs to fake.

This is definitely a better solution than my manual invocation of a job's handle method. While it works, it's only for simple jobs. If you were using dependency injection, you would have to also set that up manually.

So, as always, doing things the Laravel Way is preferred. However, I think there's an opportunity to pass which jobs to exclude. Passing which jobs to fake doesn't prevent other, unexpected jobs from running. When mocking, it's best to lock down the environment as much as possible. Maybe I'll create a PR for this in a future live stream.