diff --git a/.gitignore b/.gitignore
index c7cf1fa675f..b71b1ea3c2d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,23 +1,24 @@
-/.phpunit.cache
-/node_modules
-/public/build
-/public/hot
-/public/storage
-/storage/*.key
-/storage/pail
-/vendor
+*.log
+.DS_Store
.env
.env.backup
.env.production
.phpactor.json
.phpunit.result.cache
-Homestead.json
-Homestead.yaml
-npm-debug.log
-yarn-error.log
-/auth.json
/.fleet
/.idea
/.nova
+/.phpunit.cache
/.vscode
/.zed
+/auth.json
+/node_modules
+/public/build
+/public/hot
+/public/storage
+/storage/*.key
+/storage/pail
+/vendor
+Homestead.json
+Homestead.yaml
+Thumbs.db
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 20adc1d4a60..489d6139779 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,53 @@
# Release Notes
-## [Unreleased](https://github.com/laravel/laravel/compare/v12.0.5...12.x)
+## [Unreleased](https://github.com/laravel/laravel/compare/v12.3.0...12.x)
+
+## [v12.3.0](https://github.com/laravel/laravel/compare/v12.2.0...v12.3.0) - 2025-08-03
+
+* Fix Critical Security Vulnerability in form-data Dependency by [@izzygld](https://github.com/izzygld) in https://github.com/laravel/laravel/pull/6645
+* Revert "fix" by [@RobertBoes](https://github.com/RobertBoes) in https://github.com/laravel/laravel/pull/6646
+* Change composer post-autoload-dump script to Artisan command by [@lmjhs](https://github.com/lmjhs) in https://github.com/laravel/laravel/pull/6647
+
+## [v12.2.0](https://github.com/laravel/laravel/compare/v12.1.0...v12.2.0) - 2025-07-11
+
+* Add Vite 7 support by [@timacdonald](https://github.com/timacdonald) in https://github.com/laravel/laravel/pull/6639
+
+## [v12.1.0](https://github.com/laravel/laravel/compare/v12.0.11...v12.1.0) - 2025-07-03
+
+* [12.x] Disable nightwatch in testing by [@laserhybiz](https://github.com/laserhybiz) in https://github.com/laravel/laravel/pull/6632
+* [12.x] Reorder environment variables in phpunit.xml for logical grouping by [@AhmedAlaa4611](https://github.com/AhmedAlaa4611) in https://github.com/laravel/laravel/pull/6634
+* Change to hyphenate prefixes and cookie names by [@u01jmg3](https://github.com/u01jmg3) in https://github.com/laravel/laravel/pull/6636
+* [12.x] Fix type casting for environment variables in config files by [@AhmedAlaa4611](https://github.com/AhmedAlaa4611) in https://github.com/laravel/laravel/pull/6637
+
+## [v12.0.11](https://github.com/laravel/laravel/compare/v12.0.10...v12.0.11) - 2025-06-10
+
+**Full Changelog**: https://github.com/laravel/laravel/compare/v12.0.10...v12.0.11
+
+## [v12.0.10](https://github.com/laravel/laravel/compare/v12.0.9...v12.0.10) - 2025-06-09
+
+* fix alphabetical order by [@Khuthaily](https://github.com/Khuthaily) in https://github.com/laravel/laravel/pull/6627
+* [12.x] Reduce redundancy and keeps the .gitignore file cleaner by [@AhmedAlaa4611](https://github.com/AhmedAlaa4611) in https://github.com/laravel/laravel/pull/6629
+* [12.x] Fix: Add void return type to satisfy Rector analysis by [@Aluisio-Pires](https://github.com/Aluisio-Pires) in https://github.com/laravel/laravel/pull/6628
+
+## [v12.0.9](https://github.com/laravel/laravel/compare/v12.0.8...v12.0.9) - 2025-05-26
+
+* [12.x] Remove apc by [@AhmedAlaa4611](https://github.com/AhmedAlaa4611) in https://github.com/laravel/laravel/pull/6611
+* [12.x] Add JSON Schema to package.json by [@martinbean](https://github.com/martinbean) in https://github.com/laravel/laravel/pull/6613
+* Minor language update by [@woganmay](https://github.com/woganmay) in https://github.com/laravel/laravel/pull/6615
+* Enhance .gitignore to exclude common OS and log files by [@mohammadRezaei1380](https://github.com/mohammadRezaei1380) in https://github.com/laravel/laravel/pull/6619
+
+## [v12.0.8](https://github.com/laravel/laravel/compare/v12.0.7...v12.0.8) - 2025-05-12
+
+* [12.x] Clean up URL formatting in README by [@AhmedAlaa4611](https://github.com/AhmedAlaa4611) in https://github.com/laravel/laravel/pull/6601
+
+## [v12.0.7](https://github.com/laravel/laravel/compare/v12.0.6...v12.0.7) - 2025-04-15
+
+* Add `composer run test` command by [@crynobone](https://github.com/crynobone) in https://github.com/laravel/laravel/pull/6598
+* Partner Directory Changes in ReadME by [@joshcirre](https://github.com/joshcirre) in https://github.com/laravel/laravel/pull/6599
+
+## [v12.0.6](https://github.com/laravel/laravel/compare/v12.0.5...v12.0.6) - 2025-04-08
+
+**Full Changelog**: https://github.com/laravel/laravel/compare/v12.0.5...v12.0.6
## [v12.0.5](https://github.com/laravel/laravel/compare/v12.0.4...v12.0.5) - 2025-04-02
diff --git a/README.md b/README.md
index 1a4c26ba329..75c347a835a 100644
--- a/README.md
+++ b/README.md
@@ -35,19 +35,14 @@ We would like to extend our thanks to the following sponsors for funding Laravel
### Premium Partners
-- **[Vehikl](https://vehikl.com/)**
+- **[Vehikl](https://vehikl.com)**
- **[Tighten Co.](https://tighten.co)**
-- **[WebReinvent](https://webreinvent.com/)**
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
- **[64 Robots](https://64robots.com)**
-- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
-- **[Cyber-Duck](https://cyber-duck.co.uk)**
+- **[Curotec](https://www.curotec.com/services/technologies/laravel)**
- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
-- **[Jump24](https://jump24.co.uk)**
-- **[Redberry](https://redberry.international/laravel/)**
+- **[Redberry](https://redberry.international/laravel-development)**
- **[Active Logic](https://activelogic.com)**
-- **[byte5](https://byte5.de)**
-- **[OP.GG](https://op.gg)**
## Contributing
diff --git a/bootstrap/app.php b/bootstrap/app.php
index 7b162dac3d9..c1832766e15 100644
--- a/bootstrap/app.php
+++ b/bootstrap/app.php
@@ -10,9 +10,9 @@
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
- ->withMiddleware(function (Middleware $middleware) {
+ ->withMiddleware(function (Middleware $middleware): void {
//
})
- ->withExceptions(function (Exceptions $exceptions) {
+ ->withExceptions(function (Exceptions $exceptions): void {
//
})->create();
diff --git a/composer.json b/composer.json
index 9c446ae87e7..470c8442c53 100644
--- a/composer.json
+++ b/composer.json
@@ -13,7 +13,7 @@
"require-dev": {
"fakerphp/faker": "^1.23",
"laravel/pail": "^1.2.2",
- "laravel/pint": "^1.13",
+ "laravel/pint": "^1.24",
"laravel/sail": "^1.41",
"mockery/mockery": "^1.6",
"nunomaduro/collision": "^8.6",
@@ -33,7 +33,8 @@
},
"scripts": {
"post-autoload-dump": [
- "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+ "@php artisan config:clear",
+ "@php artisan clear-compiled",
"@php artisan package:discover --ansi"
],
"post-update-cmd": [
@@ -49,7 +50,11 @@
],
"dev": [
"Composer\\Config::disableProcessTimeout",
- "npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite"
+ "npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite --kill-others"
+ ],
+ "test": [
+ "@php artisan config:clear --ansi",
+ "@php artisan test"
]
},
"extra": {
diff --git a/config/app.php b/config/app.php
index 324b513a273..423eed59f1d 100644
--- a/config/app.php
+++ b/config/app.php
@@ -101,7 +101,7 @@
'previous_keys' => [
...array_filter(
- explode(',', env('APP_PREVIOUS_KEYS', ''))
+ explode(',', (string) env('APP_PREVIOUS_KEYS', ''))
),
],
diff --git a/config/auth.php b/config/auth.php
index 0ba5d5d8f10..7d1eb0de5f7 100644
--- a/config/auth.php
+++ b/config/auth.php
@@ -104,7 +104,7 @@
| Password Confirmation Timeout
|--------------------------------------------------------------------------
|
- | Here you may define the amount of seconds before a password confirmation
+ | Here you may define the number of seconds before a password confirmation
| window expires and users are asked to re-enter their password via the
| confirmation screen. By default, the timeout lasts for three hours.
|
diff --git a/config/cache.php b/config/cache.php
index 925f7d2ee84..c2d927d7997 100644
--- a/config/cache.php
+++ b/config/cache.php
@@ -103,6 +103,6 @@
|
*/
- 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
+ 'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-cache-'),
];
diff --git a/config/database.php b/config/database.php
index 8910562d614..5b318f58cd6 100644
--- a/config/database.php
+++ b/config/database.php
@@ -147,7 +147,7 @@
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
- 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
+ 'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-database-'),
'persistent' => env('REDIS_PERSISTENT', false),
],
diff --git a/config/logging.php b/config/logging.php
index 1345f6f66c5..9e998a496c8 100644
--- a/config/logging.php
+++ b/config/logging.php
@@ -54,7 +54,7 @@
'stack' => [
'driver' => 'stack',
- 'channels' => explode(',', env('LOG_STACK', 'single')),
+ 'channels' => explode(',', (string) env('LOG_STACK', 'single')),
'ignore_exceptions' => false,
],
diff --git a/config/mail.php b/config/mail.php
index 00345321ce0..522b284b8f7 100644
--- a/config/mail.php
+++ b/config/mail.php
@@ -46,7 +46,7 @@
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
- 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
+ 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url((string) env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
],
'ses' => [
diff --git a/config/services.php b/config/services.php
index 27a36175f82..6182e4b90c9 100644
--- a/config/services.php
+++ b/config/services.php
@@ -18,16 +18,16 @@
'token' => env('POSTMARK_TOKEN'),
],
+ 'resend' => [
+ 'key' => env('RESEND_KEY'),
+ ],
+
'ses' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
],
- 'resend' => [
- 'key' => env('RESEND_KEY'),
- ],
-
'slack' => [
'notifications' => [
'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),
diff --git a/config/session.php b/config/session.php
index ba0aa60b074..f715097f82b 100644
--- a/config/session.php
+++ b/config/session.php
@@ -13,8 +13,8 @@
| incoming requests. Laravel supports a variety of storage options to
| persist session data. Database storage is a great default choice.
|
- | Supported: "file", "cookie", "database", "apc",
- | "memcached", "redis", "dynamodb", "array"
+ | Supported: "file", "cookie", "database", "memcached",
+ | "redis", "dynamodb", "array"
|
*/
@@ -97,7 +97,7 @@
| define the cache store which should be used to store the session data
| between requests. This must match one of your defined cache stores.
|
- | Affects: "apc", "dynamodb", "memcached", "redis"
+ | Affects: "dynamodb", "memcached", "redis"
|
*/
@@ -129,7 +129,7 @@
'cookie' => env(
'SESSION_COOKIE',
- Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
+ Str::slug(env('APP_NAME', 'laravel')).'-session'
),
/*
diff --git a/package.json b/package.json
index 4e4ab6fed34..a5707d815b0 100644
--- a/package.json
+++ b/package.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://json.schemastore.org/package.json",
"private": true,
"type": "module",
"scripts": {
@@ -7,10 +8,10 @@
},
"devDependencies": {
"@tailwindcss/vite": "^4.0.0",
- "axios": "^1.8.2",
+ "axios": "^1.11.0",
"concurrently": "^9.0.1",
- "laravel-vite-plugin": "^1.2.0",
+ "laravel-vite-plugin": "^2.0.0",
"tailwindcss": "^4.0.0",
- "vite": "^6.2.4"
+ "vite": "^7.0.4"
}
}
diff --git a/phpunit.xml b/phpunit.xml
index 61c031c478e..5fd5bcf3fe5 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -25,9 +25,10 @@