Laravel 11.15, weekly updates, and 🔥 deals

Laravel 11.15

Couple new features this week brings us to Laravel 11.15.

  • Add support for mime types in resend mail transport in #52006
  • Enhance database migrations in #51373
  • Allow MultipleInstanceManager to have studly creators in #52030
  • Make Router tappable in #52051
  • Prompt about view creation for make:mail in #52057

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

Not much last week since it was a long weekend and the girls were out of school Thursday and Friday.

I did a quick live stream toying around on a new Fake object. I'm not exactly sure what it is yet. Maybe just a cleaner, more Laravel way to interact with Faker. Still don't know the exact shape it will take. So I'm going to put in on the backburner for now.

With the time I did have, I published blog.laravelshift.com. This will be the new home for the old knowledge base articles I published (but never linked), as well as deeper dives into technical aspects of Shift. It's a way to share new features and add SEO content. So, if you were interested, check out my post on Handling customizations when upgrading Laravel config files

With this week, I'll do another live stream tomorrow to add some new MailFake test assertions. I'm also improving some error handing for wppm.io. If I have time, I'm going to rerecord some of the Shift videos to reflect the latest site design and Laravel versions.

🔥 Tip

I always forget how to disable updating the timestamps when saving a model. It's not something I do often, but also there isn't a streamlined method for doing so like saveQuietly (which disables model events).

Instead, and from the docs, you wrap your code in a callback and pass it to the static withoutTimestamps method on the model.

For example, to disable updating the timestamps for a User model when calling save:

User::withoutTimestamps(fn () => $user->save());

And, from searching the internet, you may also simply set the public timestamps property on your model to false. For example:

$user->timestamps = false;
$user->save();

That feels a bit hacky to me. Again, this isn't something I do often, but some kind of like saveQuietly would be cool...

$user->saveWithoutTimestamps();