Laravel 8.78, weekly updates, and 🔥 tip

Laravel 8.78

Even though it has been two weeks since the last release, not necessarily double the features in this week's release for Laravel 8.78. Still, some nice additions though.

  • Add schedule:clear-mutex command in #40135
  • Ability to define extra default password rules in #40137
  • Add Request::mergeIfMissing in #40116
  • Improve support for custom Doctrine column types in #40119
  • Add multiple lines at once for SimpleMessage in #40147
  • Clear recorded calls when calling Http::fake() in #40194
  • Add Bus::assertBatchCount in #40217
  • Add ability to customize JSON options on JsonResource response in #40208

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 finished merging the open PRs for all of the Shift repositories. In addition, I opened some new issues and prioritized existing issues. Starting next week our focus will be preparing for the Laravel 9 release later this month.

Unfortunately last week our household tested positive for Covid. This was likely contracted during our Christmas visits. We knew the risks with the new Omicron variant. But we had not been around family for the holidays since before Izzy was born. We're fully vaccinated, so fortunately symptoms have been pretty mild. We'll continue our quarantine until the end of the week.

I did have enough energy yesterday to complete the new snapshot testing for Shift. I proved the strategy last week, but wanted to add some custom assertions for an even better developer experience. If you're interested in more details, I posted this thread on Twitter.

Ideally I'll get this merged later today. Then with the rest of the week, I'll continue refactoring Shift and Jess will tweak the Tailwind Shifts based on recent feedback.

🔥 Tip

I though this change Taylor made in one of the recent patch releases was interesting:

- return ! $this->contains($key, $operator, $value);
+ return ! $this->contains(...func_get_args());

To me, the original code seemed to better communicate the arguments. I was curious why spread the arguments passed instead of explicitly passing them.

So I asked Taylor and he pointed out that by spreading the arguments it would call the underlying method with the same number of arguments. This mattered since the underlying method behaved differently based on the arguments it received.

So spreading the arguments allowed the underlying method to behave as if it had been called directly. 🔥