Skip to content
Stepclimbby BufferSol

Laravel 11 to 12 upgrade checklist

Laravel 11 stopped getting security fixes on 12 Mar 2026. This is what moving a Laravel 11 app to 12 involves, taken from the official upgrade guide, with the date we checked it.

Checked 5 Nov 2026 against laravel.com

Support dates

Security fix end dates for Laravel 11 and 12, checked 5 Nov 2026
ReleaseSecurity fixes end
Laravel 1112 Mar 2026Ended 238 days ago
Laravel 1224 Feb 2027111 days left

Laravel 12 supports PHP 8.2 to 8.5, so most Laravel 11 apps do not need a PHP change for this step. PHP 8.2 itself gets security fixes until 31 Dec 2026.

Update composer.json

The official upgrade guide lists these constraints. Change them, then run composer update and read the output for conflicts with your other packages.

composer.json changes for Laravel 12
PackageConstraintSection
laravel/framework^12.0require
phpunit/phpunit^11.0require-dev
pestphp/pest^3.0require-dev

Check the PHP version

Make sure the php constraint in composer.json allows 8.2 or newer, and that your host and CI run a PHP version Laravel 12 supports, from 8.2 to 8.5.

Decide what to do about skeleton changes

The 12.x guide calls skeleton changes optional and points to the comparison of the 11.x and 12.x branches of laravel/laravel on GitHub. Read that diff for config files such as config/session.php and bootstrap/app.php, and take only the changes you want.

Run the install, the build and the tests

After composer update, run composer install from a clean checkout, build your assets and run the whole test suite. Packages not listed in the guide, such as Tinker, Sail, Pint, Sanctum and Collision, may need a bump too. Check each one against its own release notes.

What Stepclimb does for this hop

Each of these is one named recipe and one commit in the pull request. The pull request also carries a work order and the Verified check, which means composer install, your asset build and your tests ran in our sandbox first.

  1. Update composer.json for Laravel 12: framework, PHPUnit and Pest constraints as in the table above, and a PHP minimum of at least 8.2.
  2. Sync skeleton and config files with Laravel 12, as a three way merge. Conflicts keep your version and become squawks.

Sources and method

Constraints and changes on this page come from the official Laravel documentation and were read on 5 Nov 2026. Support dates come from the Laravel release notes. If the official guide changes after that date, trust the official guide.

Common questions

Is Laravel 11 still supported?

Security fixes for Laravel 11 ended on 12 Mar 2026, according to the Laravel release notes. An app that stays on 11 gets no further security fixes from the framework.

Can I skip 12 and go straight to 13?

You can plan the jump, but Laravel 13 needs PHP 8.3 or newer and each major has its own upgrade guide. Stepclimb applies one major at a time, one commit per change, so each step is reviewable.

Do I have to update the skeleton files?

No. The official guide calls skeleton changes optional. Stepclimb merges them in a separate commit and lists conflicts as squawks.

Find out what a move to Laravel 12 needs in your repo

The free inspection reads composer.json, composer.lock and package.json only. No code is cloned.

Inspect a repo free

Free inspection first. Cancel at period end. Pause up to 3 months.