Laravel 11.33, weekly updates, and tip

Laravel 11.33

A bunch of tags over the last few days has jumped us to Laravel 11.33.2.

Also, not included in the original post last week was a critical security patch. So, everyone, be sure to run composer update to patch this.

Here are the highlights for Laravel 11.32 and 11.33:

  • Add createQuietly to Model in #53558
  • Trim log channel names in #53554
  • Add Request::enums() to retrieve an array of enums in #53540
  • Output clean error page on health check route in #53528
  • Support DB aggregate by group in #53209
  • PHP 8.4 Code compatibility in #53571
  • Http Client fake connection exception in #53485
  • Allow BackedEnum when asserting redirect-routes in #53498
  • Allow BackedEnum when using redirectToRoute in #53518
  • Introduce Blueprint::rawColumn() in #53496
  • Introduce schedule grouping in #53427
  • Support ObservedBy on parent model classes in #53579

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

I was sick early last week, so I mostly took it easy. As I felt well enough, I prepared for my talk to a web programming class at my High School on Thursday.

I shared my story as it relates to my career and evolution as a programmer. I, of course, touted PHP and Laravel. I also gave a demo "modern" web development with HTML and Tailwind. Hopefully I got across to a few students.

The rest of the week I mostly worked on the side-projects with Caen and JT. Today, I'm happy to share the side-project Caen and I have been working on - release.new.

release.new is a free service to generate release notes for your open source projects on GitHub. You enter a few details about the repo and we'll pull the rest from your Git log. We also provide common formatting options with a single click. It's basically what we wish the release experience on GitHub would be.

I'll be sharing more about working on this project in the coming weeks. For now, I'm glad to officially launch it. So check it out and let me know what you think.

With the rest of the week, I'll finish up some Human Shifts and continue to monitor my recent upgrade of Shift to Laravel 11.

Weekly Tip

Something I used in the new side-projects is job middleware. This feature was added way back in Laravel 6, but I hadn't used it yet.

Much like request middleware, job middleware allows you to pre-filter queued jobs to see if they should run.

In the case of release.new, we wanted to ensure the same repository could not be imported at the same time. So we added the following job middleware to limit by repository name.

public function middleware(): array
{
return [new WithoutOverlapping($this->cloneUrl)];
}

You could, of course, add pre-filtering logic to your app before putting a job on the queue. But this feature pushes all that to the down to the job itself and provides common logic built right into the framework.