Skip to content

Commit ca87993

Browse files
Merge tag 'v13.4.0'
2 parents 4615452 + 8cbc954 commit ca87993

16 files changed

Lines changed: 182 additions & 195 deletions

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ trim_trailing_whitespace = false
1414
[*.{yml,yaml}]
1515
indent_size = 2
1616

17-
[compose.yaml]
17+
[{compose,docker-compose}.{yml,yaml}]
1818
indent_size = 4
1919

2020
[*.blade.php]

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
fail-fast: true
1818
matrix:
1919
node: [22, 24]
20-
php: [8.2, 8.3, 8.4, 8.5]
20+
php: [8.3, 8.4, 8.5]
2121
os:
2222
- "ubuntu-22.04"
2323

.gitignore

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
.env.production
66
.phpactor.json
77
.phpunit.result.cache
8-
/.fleet
8+
/.codex
9+
/.cursor/
910
/.idea
1011
/.nova
1112
/.phpunit.cache
@@ -22,11 +23,11 @@
2223
.env.*
2324
.envrc
2425
.envrc.*
26+
_ide_helper.php
2527
Homestead.json
2628
Homestead.yaml
2729
Thumbs.db
2830

29-
/_ide_helper.php
3031
/_ide_helper_models.php
3132
/.phpstorm.meta.php
3233
/.php-cs-fixer.cache
@@ -41,8 +42,6 @@ public/js/app.js.map
4142
public/js/app.js.LICENSE.txt
4243

4344
# Auto-generated by Laravel Boost
44-
45-
4645
/.*/skills/debug-using-debugbar
4746
/.*/skills/laravel-best-practices
4847
/.*/skills/tailwindcss-development

.npmrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ignore-scripts=true
2+
audit=true

CHANGELOG.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
11
# Release Notes
22

3-
## [Unreleased](https://github.com/laravel/laravel/compare/v12.12.1...12.x)
3+
## [Unreleased](https://github.com/laravel/laravel/compare/v13.3.0...13.x)
4+
5+
## [v13.3.0](https://github.com/laravel/laravel/compare/v13.2.0...v13.3.0) - 2026-04-16
6+
7+
* [13.x] enable npm audit by default by [@leo95batista](https://github.com/leo95batista) in https://github.com/laravel/laravel/pull/6788
8+
* Update changelog link to Laravel framework repo by [@Rattone](https://github.com/Rattone) in https://github.com/laravel/laravel/pull/6790
9+
* [13x] Add .codex to .gitignore by [@amdad121](https://github.com/amdad121) in https://github.com/laravel/laravel/pull/6793
10+
11+
## [v13.2.0](https://github.com/laravel/laravel/compare/v13.1.2...v13.2.0) - 2026-04-09
12+
13+
* Remove axios and enable ignore-scripts by [@WendellAdriel](https://github.com/WendellAdriel) in https://github.com/laravel/laravel/pull/6778
14+
* Add /.cursor/ to .gitignore by [@workwithbinu](https://github.com/workwithbinu) in https://github.com/laravel/laravel/pull/6782
15+
* Remove '.fleet' from .gitignore by [@dominiq007](https://github.com/dominiq007) in https://github.com/laravel/laravel/pull/6783
16+
* Support all compose file naming conventions in editorconfig by [@mmachatschek](https://github.com/mmachatschek) in https://github.com/laravel/laravel/pull/6786
17+
18+
## [v13.1.2](https://github.com/laravel/laravel/compare/v13.1.1...v13.1.2) - 2026-03-31
19+
20+
* Prevents installed package from executing malicious code via `postinstall` by [@crynobone](https://github.com/crynobone) in https://github.com/laravel/laravel/pull/6777
21+
* Add missing comma in axios by [@aziyan99](https://github.com/aziyan99) in https://github.com/laravel/laravel/pull/6779
22+
23+
## [v13.1.1](https://github.com/laravel/laravel/compare/v13.1.0...v13.1.1) - 2026-03-31
24+
25+
* Update .gitignore by [@Cegem-360](https://github.com/Cegem-360) in https://github.com/laravel/laravel/pull/6774
26+
* [security] pin axios version by [@NickSdot](https://github.com/NickSdot) in https://github.com/laravel/laravel/pull/6776
27+
28+
## [v13.1.0](https://github.com/laravel/laravel/compare/v12.12.2...v13.1.0) - 2026-03-18
29+
30+
* Change back minimum-stability to stable by [@jnoordsij](https://github.com/jnoordsij) in https://github.com/laravel/laravel/pull/6766
31+
* Vite 8 support
32+
33+
## [v12.12.2](https://github.com/laravel/laravel/compare/v12.12.1...v12.12.2) - 2026-03-14
34+
35+
* [12.x] Add `APP_NAME` fallback in Slack log channel username by [@hamedelasma](https://github.com/hamedelasma) in https://github.com/laravel/laravel/pull/6762
436

537
## [v12.12.1](https://github.com/laravel/laravel/compare/v12.12.0...v12.12.1) - 2026-03-10
638

README.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -107,24 +107,23 @@ Laravel is accessible, powerful, and provides tools required for large, robust a
107107

108108
## Learning Laravel
109109

110-
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. You can also check out [Laravel Learn](https://laravel.com/learn), where you will be guided through building a modern Laravel application.
110+
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
111111

112-
If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
112+
In addition, [Laracasts](https://laracasts.com) contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
113113

114-
## Laravel Sponsors
114+
You can also watch bite-sized lessons with real-world projects on [Laravel Learn](https://laravel.com/learn), where you will be guided through building a Laravel application from scratch while learning PHP fundamentals.
115115

116-
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).
116+
## Agentic Development
117117

118-
### Premium Partners
118+
Laravel's predictable structure and conventions make it ideal for AI coding agents like Claude Code, Cursor, and GitHub Copilot. Install [Laravel Boost](https://laravel.com/docs/ai) to supercharge your AI workflow:
119119

120-
- **[Vehikl](https://vehikl.com)**
121-
- **[Tighten Co.](https://tighten.co)**
122-
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
123-
- **[64 Robots](https://64robots.com)**
124-
- **[Curotec](https://www.curotec.com/services/technologies/laravel)**
125-
- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
126-
- **[Redberry](https://redberry.international/laravel-development)**
127-
- **[Active Logic](https://activelogic.com)**
120+
```bash
121+
composer require laravel/boost --dev
122+
123+
php artisan boost:install
124+
```
125+
126+
Boost provides your agent 15+ tools and skills that help agents build Laravel applications while following best practices.
128127

129128
## Contributing
130129

app/Models/User.php

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
// use Illuminate\Contracts\Auth\MustVerifyEmail;
66
use Database\Factories\UserFactory;
7+
use Illuminate\Database\Eloquent\Attributes\Fillable;
8+
use Illuminate\Database\Eloquent\Attributes\Hidden;
79
use Illuminate\Database\Eloquent\Factories\HasFactory;
810
use Illuminate\Foundation\Auth\User as Authenticatable;
911
use Illuminate\Notifications\Notifiable;
@@ -24,6 +26,8 @@
2426
* @method static \Illuminate\Database\Eloquent\Builder<static>|\App\Models\User query()
2527
* @mixin \Eloquent
2628
*/
29+
#[Fillable(['name', 'email', 'password'])]
30+
#[Hidden(['password', 'remember_token'])]
2731
class User extends Authenticatable
2832
{
2933
/**
@@ -32,27 +36,6 @@ class User extends Authenticatable
3236
use HasFactory;
3337
use Notifiable;
3438

35-
/**
36-
* The attributes that are mass assignable.
37-
*
38-
* @var list<string>
39-
*/
40-
protected $fillable = [
41-
'name',
42-
'email',
43-
'password',
44-
];
45-
46-
/**
47-
* The attributes that should be hidden for serialization.
48-
*
49-
* @var list<string>
50-
*/
51-
protected $hidden = [
52-
'password',
53-
'remember_token',
54-
];
55-
5639
/**
5740
* Get the attributes that should be cast.
5841
*

composer.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,28 @@
66
"keywords": ["laravel", "framework"],
77
"license": "MIT",
88
"require": {
9-
"php": "^8.2",
10-
"laravel/framework": "^12.0",
11-
"laravel/tinker": "^2.10.1"
9+
"php": "^8.3",
10+
"laravel/framework": "^13.0",
11+
"laravel/tinker": "^3.0"
1212
},
1313
"require-dev": {
1414
"barryvdh/laravel-debugbar": "^4.0",
1515
"barryvdh/laravel-ide-helper": "^3.2",
16-
"beyondcode/laravel-dump-server": "^2.0.0",
1716
"brianium/paratest": "^7.0",
1817
"fakerphp/faker": "^1.23",
1918
"friendsofphp/php-cs-fixer": "^3.13",
2019
"larastan/larastan": "^3.0",
2120
"laravel/boost": "^2.1",
22-
"laravel/pail": "^1.2.2",
23-
"laravel/pint": "^1.24",
21+
"laravel/pail": "^1.2.5",
22+
"laravel/pao": "^1.0.6",
23+
"laravel/pint": "^1.27",
2424
"laravel/sail": "^1.41",
2525
"mockery/mockery": "^1.6",
2626
"nunomaduro/collision": "^8.6",
2727
"phpstan/phpstan": "^2.0",
2828
"phpstan/phpstan-mockery": "^2.0",
29-
"phpunit/php-code-coverage": "^11.0",
30-
"phpunit/phpunit": "^11.5.50",
29+
"phpunit/php-code-coverage": "^12.5",
30+
"phpunit/phpunit": "^12.5.12",
3131
"spatie/phpunit-watcher": "^1.24"
3232
},
3333
"autoload": {
@@ -48,15 +48,15 @@
4848
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\"",
4949
"@php artisan key:generate",
5050
"@php artisan migrate --force",
51-
"npm install",
51+
"npm install --ignore-scripts",
5252
"npm run build"
5353
],
5454
"dev": [
5555
"Composer\\Config::disableProcessTimeout",
5656
"npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1 --timeout=0\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite --kill-others"
5757
],
5858
"test": [
59-
"@php artisan config:clear --ansi",
59+
"@php artisan config:clear --ansi @no_additional_args",
6060
"@php artisan test -p"
6161
],
6262
"post-autoload-dump": [

config/cache.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,17 @@
114114

115115
'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-cache-'),
116116

117+
/*
118+
|--------------------------------------------------------------------------
119+
| Serializable Classes
120+
|--------------------------------------------------------------------------
121+
|
122+
| This value determines the classes that can be unserialized from cache
123+
| storage. By default, no PHP classes will be unserialized from your
124+
| cache to prevent gadget chain attacks if your APP_KEY is leaked.
125+
|
126+
*/
127+
128+
'serializable_classes' => false,
129+
117130
];

config/session.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,4 +214,20 @@
214214

215215
'partitioned' => env('SESSION_PARTITIONED_COOKIE', false),
216216

217+
/*
218+
|--------------------------------------------------------------------------
219+
| Session Serialization
220+
|--------------------------------------------------------------------------
221+
|
222+
| This value controls the serialization strategy for session data, which
223+
| is JSON by default. Setting this to "php" allows the storage of PHP
224+
| objects in the session but can make an application vulnerable to
225+
| "gadget chain" serialization attacks if the APP_KEY is leaked.
226+
|
227+
| Supported: "json", "php"
228+
|
229+
*/
230+
231+
'serialization' => 'json',
232+
217233
];

0 commit comments

Comments
 (0)