Laravel 13.15, weekly updates and tip
Laravel 13.15
A few patch and minor releases bring us all the way to Laravel 13.15 this week. Here are the highlights:
- Fix
Request::createFromBase()compatibility with Symfony 8.1 in #60354 - Allow enums in
Queue::routein #60402 - Add units to
DebounceForin #60388 - Add
MacroabletoInvokedProcessin #60392 - Add
Prohibitabletocache:clearandqueue:flushin #60430 - Add JSON Schema array deserializer in #60384
- Add typed translation accessors in #60443
- Add multi-type union support to Illuminate
JsonSchemain #60455
You may review the full branch diff on GitHub for a complete list of changes.
Weekly Journal
Last week I was mostly support mode - patching super minor bugs reported for Shift. I also fixed some minor issues on laravelshift.com. The only one of note was from the big refactors I did a few weeks back with AI. A bit of JavaScript wasn't firing on the Shift pages due to a cookie rename that was missed. Probably something only I noticed. But, nonetheless, its fixed.
Other than that, I worked on my latest side-project. I got a majority of the work done last Thursday and Friday. That put me in a good place to finish up yesterday. I'll probably use my livestream tomorrow to launch it. I'm not expecting much traction on this side-project. It's not related to code. But, of course, I used the TALL stack to build it (Tailwind, Alpine, Livewire, Laravel). The project also gave me a chance to use the new Laravel AI SDK.
Anyway, I wanted it done because, well honestly, I'm tired of not finishing side-projects. But also because I came up with my next Shift related side-project. I'll share more on that in the coming weeks, but I want to prove the idea a bit more first.
Weekly Tip
The AI responses I received in my latest project contained Markdown. So I was using Str::markdown() a lot. But did you know there's an Str::inlineMarkdown(). I didn't. It was added way back in Laravel 9.
Essentially all Markdown is wrapped in a p tag - even if it doesn't contain any line breaks.
So Str::markdown('**Shift**') produces <p><strong>Shift</strong></p>.
However, Str::inlineMarkdown('**Shift**') produces <strong>Shift</strong>. No wrapping <p> tag.
Any line breaks within the Markdown will be preserved. inlineMarkdown never wraps in <p> tags. In fact, you never get any block-level tags at all. Underneath it uses CommonMark's InlinesOnlyExtension. Which, "configures the parser to only render inline elements - no paragraph tags, headers, code blocks, etc."