Laravel 12.18, weekly updates, and weekly tip

Laravel 12.18

Couple features this week brings us to Laravel 12.18.0. Here are the highlights.

  • Add encrypt and decrypt Str helper methods in #55931
  • Add a command option for making batchable jobs in #55929
  • Introduce UsePolicy PHP attribute for models in #55882
  • Make custom eloquent castings comparable for more granular isDirty check in #55945
  • Allow setting truncation limit per request in #55897
  • Supports PHPUnit 12.2 in #55961
  • New broadcasting utilities in #55967

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

I got back into the swing of things last week with tweaks to Shift, a livestream, and outlining a new course. Unfortunately just as I did, we caught the daycare bug now that Emma's back. Ah parenthood.

Anyway, trying to get back into the swing of things today. So I started things off by officially launching WP Static. This is the side-project JT and I have been working on for the last several months.

WP Static allows you to create a static copy of your WordPress site. The reality is most WordPress sites don't need WordPress. At least not in production. WP Static can bundle your site so you can host an infinitely faster, more secure, and cheaper version of your site.

Now that it's launched, we'll start the hardest part of any side project - marketing. Since this is a Laravel focused newsletter, I won't mention it too much more here. But if there is crossover for you, feel free to reach out.

Weekly Tip

I posted a tweet last week that got a little chirpy. It's always hard to get your point across on Twitter. Twitter is more for what I call chirping. Not necessarily a dialogue.

Allow me to elaborate here. I don't use the action pattern. That doesn't mean I don't think it's a good pattern. The action pattern was the current, ready example.

My underlying point was that you should be able to express why you are using a pattern. You shouldn't just use a pattern because everybody else does.

You'll grow more as a developer by feeling the pain. Pain is our greatest teacher. It evolves us. It's better to work through a naive implementation and then apply a pattern, than it is to apply a pattern blindly.