Laravel 8.32, weekly updates, and πŸ”₯ tip

Laravel 8.32

Lots of releases! A patch release and a minor release last week. A new minor release this week, with a fast follow patch release bringing us to 8.32.1.

Here are the highlights:

  • Fix validator treating null as true in #36504
  • Add Fluent JSON Assertions in #36454
  • Add new Stringable::test method in #36462
  • Helper methods to dump HTTP requests in #36466
  • Add support for passing Eloquent Collections to Model::destroy() in #36497
  • Support passing callback arguments for value in #36506
  • Ability to slow workers down in #36521
  • Add ThrottlesExceptionsWithRedis job middleware in #36518
  • Add prohibited_if and prohibited_unless validation rules in #36516

You may review the full branch diff on GitHub for a complete list of changes.

This minor 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 Jess and I continued pairing on the Tailwind Shifts. We're in a place now where all the alpha tests are going well, and we have used them on our own projects.

So, I'll be launching the beta release of these Tailwind Shifts tomorrow. They will be offered at a discounted price of $9 while we continue to improve the automation for all the various ways people may use Tailwind in their projects - as these are not just for Laravel projects.

I hope to make a fun marketing video later I'll post on Twitter, and a demo video tomorrow for the official release.

I also "grandfathered" the existing subscriptions to the new Shifty Plans. This was a bit more involved than I thought. Mainly for the reasons Stripe does not allow you to swap plans that have different billing cycles without generating an invoice.

Since I moved the "CI Plan" from bi-annual to annual to mirror the new Laravel release cycle, the billing cycles changed. My only choice was a manual (gross), opt-in approach. Existing subscribers have immediate access to the new "Latest Plan" features. So it's really just a matter of swapping your plan to the billing cycle to taking advantage of the new discounted price.

This week I plan to release the Tailwind Shifts. While building the actual Shift is the most work, there's still a lot of work that goes into the launch - the "Learn More" pages, SEO images, marketing video, and ultimately sharing the release. So that will likely be the rest of my week. In addition to creating a Tailwind UI Shift (as I need that too).

πŸ”₯ Tip

Going to toot my own horn a bit for this week's πŸ”₯ tip. I finally got the db:seed argument for the class name merged into Laravel. Took a few tries, but after some likes on Twitter, I revisited the conversation with Taylor.

This allows you to pass the seeder class name directly as an argument, instead of setting it via the --class= option. For example, all of the following may be used to run the DatabaseSeeder:

1php artisan db:seed --class=DatabaseSeeder
2php artisan db:seed DatabaseSeeder
3php artisan db:seed

For whatever reason this was just a symmetrical paper cut, as it did not align with most of the other artisan commands. Despite using Laravel for several years, I continually passed the class name as an argument. So dropping the ––class= saves you several keystrokes.

For more saving keystrokes tips, check out the Episode 32 of the BaseCode podcast. You'll find a lot of command shortcuts in the Show Notes.