Laravel 8.80, weekly updates, and 🔥 tip

Laravel 8.80

Couple new features in this week's release of Laravel 8.80. More math fun in the version numbers: 8 - 8 = 0

Anyway, here are the highlights:

  • Allow enums as entity_type in morphs in #40375
  • Add support for specifying a Route::group controller in #40276
  • Add phpredis serialization and compression config support in #40282
  • Add Blade::render() to render a string with Blade syntax in #40425
  • Add sortKeysUsing to Collection in #40458

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 live streamed a couple additions to Laravel. Two of these ended up getting closed. Fortunately, the other more important one got merged.

I spent the rest of the week completing the automation for all of the various changes in Laravel 9. At first, Laravel 9 seemed to mostly be a maintenance release. However, there are actually a lot of changes. Especially when you consider all of the changes during Laravel 8.

Shift's goal is to take a Laravel 8.0 application and make it a Laravel 9.0 application. So, Shift always does more than what's listed in the Upgrade Guide. In this case, that's a lot since it's been 15 months instead of the normal 6 months between releases. Nearly every file in a default Laravel app changed.

All the currently known changes are complete. So I plan to release a beta of the Laravel 9.x Shift tomorrow. I'll continue watching the Upgrade Guide and change log to automate any last minute additions.

This week I'll also live stream some additional work on Project A. I hope to get it feature complete by the end of the week. After which, I'd like to transition into more live streams related to Shift.

To that point, I asked on Twitter for any real world Laravel applications I could upgrade in these live streams. So, if you have one, feel free to DM me. I'll upgrade multiple, so there's a good chance yours will be chosen.

🔥 Tip

Something in PHP I don't use very often and actually didn't stumble upon until deep in my PHP career is the ability to jump out of nested control structures.

Both continue and break support a numeric argument. The default is 1.

I recently used this in the Laravel 9.x Shift to recreate the behavioral equivalent of a firstWhere or contains method.

foreach ($paths as $path) {
$instances = $validation->parse(Shift::getFileContents($path));
foreach ($instances as $instance) {
if ($this->containsArrayRule($instance)) {
$references[] = $path;
continue 2;