Laravel 11.8, weekly updates, and 🔥 tip

Laravel 11.8

We have two weeks worth of PRs in today's tag of Laravel 11.8. Here are the highlights.

  • Add unshift() to Collection in #51344
  • Add events to model:show in #51324
  • Add has validation rule in #51348
  • Add support for previous apps keys in signed URL verification in #51222
  • Allow passing arrays for web and api routes in bootstrap/app.php in #51356
  • Ability to manually fail a command in #51435
  • Add isCurrentlyOwnedBy() to lock in #51393
  • Add --view option to make:mail in #51411

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 was mostly Human Shifts. I had a few. One upgrading a Laravel 5.6 application. Another upgrading from Laravel 5.8. There were also some consulting hours to refactor towards Laravel conventions.

In addition, I worked on the side-project. Mostly patching bugs revealed by devs checking it out from the newsletter last week. I realized afterward the link was not prefixed. So, if it wasn't readily clickable (or you're a new reader) here's my side-project - WPPM - an automated service for publishing your WordPress plugins.

This week I hope to finalize the remaining Human Shifts. In the process of resolving some of the bugs last week, I feel user impersonation would make my life easier. While there are plenty of packages that do this, I really believe it's 10 lines of code. So I'll see if that's true in tomorrow's live stream.

🔥 Tip

Pretty much everything above reminds me of a tip I've probably given before - be mindful about adding dependencies. The reality is, you become responsible for that code the second you add it to your project.

The slowdown in these Human Shifts (and cause for not upgrading) is due to abandoned packages. As the number of dependencies in the projects increases, so does the likelihood one will become abandoned. When that happens, you often have to rewrite all of its integration code.

This happens even to "popular" packages. Look at laravelcollective/html. From Shift's analytics still one of the top used packages. Now abandoned in Laravel 11 (don't worry).

The community is filled with all sorts of wonderful packages. I am not saying write everything yourself. But you should ask a few questions before installing a new package...

  • Is this a known package author?
  • Are there other packages by this author?
  • When was the last activity for this package?
  • How many of the features in this package do I need?
  • How much code does this package include?
  • How many dependencies does this package have?

If you don't have good answers for those, keep looking. Or, maybe, simply assimilate the pieces you need.