Support dates
| Release | Security fixes end |
|---|---|
| Laravel 11 | 12 Mar 2026Ended 238 days ago |
| Laravel 12 | 24 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.
| Package | Constraint | Section |
|---|---|---|
| laravel/framework | ^12.0 | require |
| phpunit/phpunit | ^11.0 | require-dev |
| pestphp/pest | ^3.0 | require-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.
- 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.
- 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.