[0:00] Laravel 13 is now released. [0:03] >> [music] [0:03] >> Um they just announced today that it's [0:05] official. Um [0:07] not a whole lot of features, really, but [0:08] uh PHP 8.3 is now the minimum required. [0:12] >> [music] [0:12] >> Uh it's got new attributes, Laravel AI, [0:15] and a smoother upgrade path. So, let's [0:17] dive in and take a look [music] at some [0:19] of these new features. So, here on [0:20] Laravel News, we covered them, um but I [0:23] think the highlight is [music] this [0:25] first intro sentence from the Laravel [0:27] team themselves. It says, "Much of our [0:29] focus during the release cycle has been [0:31] on minimizing breaking changes. [music] [0:33] Instead, we have dedicated ourselves to [0:35] shipping continuous quality-of-life [0:37] improvements throughout the [music] year [0:38] that do not break existing [0:40] applications." [0:42] Um and what that means for me is, you [0:44] know, as Laravel has sort of [music] [0:46] matured where it, you know, version 13 [0:48] now, [0:49] uh they're trying to prevent [music] [0:51] a lot of breaking changes, you know, [0:52] they're wanting the upgrade to be [0:54] simple, they're wanting to, you know, [0:56] not make [music] anything drastic like [0:59] they probably have done in the past. You [1:01] know, I'm thinking of like, I think it's [1:02] [music] version 4 to version 5 was kind [1:04] of a huge upgrade. [1:06] Maybe 5 to 6, but there was just two or [1:08] three in there that were kind of [music] [1:10] really difficult upgrades. [1:12] But uh from 12 to 13, it's not a whole [1:15] lot of breaking stuff. So, that's kind [1:17] of cool, and it also, you know, it's [1:19] sort of better for the whole ecosystem [1:20] as a whole because, [1:21] >> [music] [1:22] >> you know, packages and your your apps [1:24] and everything in between can now [1:26] upgrade pretty smoothly on down. So, PHP [1:30] 8.3 is now the minimum required. Um [1:34] Laravel drops support [music] for 8.2. [1:37] Um 8.3 is actually, you know, been out. [1:41] I think it's been out a while now, so it [1:43] shouldn't be that hard of an upgrade, [1:44] but you should definitely want to stay [1:45] up on [music] the latest PHP versions. [1:48] So, make note of that. That is one [1:50] probably big [music] change that could [1:52] be um a little annoying for you if [1:55] you're, you know, if you're running [1:55] [music] like PHP 8.1 or 8.2 or something [1:58] like that. And then the biggest, [music] [2:01] I guess, change, but this is not really [2:03] like um it's fully optional and it's [2:06] backward [music] compatible, but [2:07] first-class support for PHP attributes. [2:10] And I have an example here. So, this is [2:12] actually going to change for models, [2:14] jobs, console commands, and [2:16] >> [music] [2:16] >> I've got 15 other locations. So, [2:19] basically what it does is here's an [2:20] example model. You can see, you know, [2:22] you can now define the table. [2:24] Uh this [music] was In this example, the [2:26] users table, um your key, [2:30] key type, and whether it's incrementing. [2:32] >> [music] [2:32] >> And then the hidden field is password, [2:34] and fillable is name and email. [2:36] So, that's pretty cool, and it kind of [2:38] does tighten it up a little bit. [2:40] >> [music] [2:40] >> Um but again, completely optional in [2:42] your own apps. Um if you don't want to [2:44] use this, you don't have to, but it's [2:47] totally up to you. Another big change is [2:49] [music] [2:50] the Laravel SDK AI SDK. So, they've been [2:53] pushing a lot on AI stuff in this last, [2:55] I don't know, [music] 6 months. [2:57] Um and all those, you know, like Boost [3:00] and a couple of the other things are [3:01] all, you know, [music] separate [3:03] packages. So, even though Laravel 13's [3:05] launched um [3:07] you know, this, I guess, [3:09] >> [music] [3:10] >> is technically already been out, but now [3:11] it's official with Laravel 13. But I'm [3:14] assuming they're going to go down [3:15] different paths, [music] you know, like [3:17] when they when they come up with updates [3:19] on those, they'll they'll come out on [3:20] their own versus, [music] you know, [3:23] Laravel 13.1 for a feature of the [3:25] Laravel AI SDK. So, basically completely [3:28] independent now, they can upgrade or do [3:29] whatever in between. [music] First-party [3:31] JSON API resources, um [3:34] uh so, again, more more stuff for API [3:37] back end, queue routing. [3:40] >> [music] [3:40] >> Um you can see here an example. [3:43] Native vector query support, [music] [3:46] um and then here's an example where [3:48] vector similar to embedding and the [3:50] wineries [music] in Napa Valley. [3:52] Uh next up, cache touch, and you can [3:55] extend [music] [3:57] um [3:58] extends a cached item's time to live [4:01] without fetching or restoring the value. [4:03] [music] [4:03] So, that's pretty cool. And then [4:05] finally, the support timeline. Uh we're [4:08] on Laravel 13 now. PHP 8.3 to 8.5, and [4:12] [music] [4:13] it gets bug fixes in until Q3 of 2027, [4:17] and security fixes till Q1 of 2028. So, [4:20] [music] you'll get 2 years of those [4:21] security fixes. [4:23] Um but we have the whole support [4:24] timeline [music] here. The main thing [4:26] though is Laravel 12, you have 1 more [4:29] year left of security fixes, but the bug [4:32] fixes are only going to last until [4:34] August of this year. [music] [4:35] So, you know, if you haven't upgraded [4:37] yet, of course you haven't cuz we're [4:39] just announcing it today, but if you [4:41] haven't upgraded by August 13th, you [4:43] need to get that done. [4:44] Um and then finally, upgrading to [4:46] Laravel 13. [4:47] >> [music] [4:47] >> Lar- if you're on Laravel 12, they do [4:50] have a Boost command to upgrade. I [4:52] >> [music] [4:52] >> I haven't used it yet. I'm assuming it [4:54] just sort of goes through and does it by [4:57] AI, but if you want something a little [4:58] bit more like in-depth is [music] [5:00] Laravel Shift. Um that's been out for, [5:03] man, quite a few years now, but what it [5:05] does is it tries to bring your entire [5:06] application up to all the 13 standards. [5:09] >> [music] [5:09] >> Um and it it does it through pull [5:12] requests. It's it's pretty sweet. That's [5:13] what I've always used, and I'll continue [5:15] to use that going forward. [music] So, [5:16] check out Laravel Shift if you want an [5:18] easy way of upgrading. [5:20] Um so, that's sort of the highlights of [5:22] Laravel 13. It's not a huge update, um [5:25] but it is, you know, it [music] is [5:27] following that yearly major version [5:30] update cycle. So, for those that are not [5:33] familiar, Laravel 13 is now, Laravel 14 [5:36] [music] will be [5:38] Q1 of 2027 now. [5:41] So, it always runs this way, and then [5:43] every week we seem to get like minor [5:45] updates and sort of new features if they [5:47] come about, but they try to kind of [5:49] limit breaking changes for the major [5:51] versions. And in this case, we just [5:53] didn't have that many this year. [5:55] Um so, go and get upgrading and go and [5:57] check everything out. Uh you can read [6:00] about it on our website, [6:01] laravel-news.com/laravel-13-released. [6:06] And happy updating.