Laravel upgrades

PHP 8.2 end of life: 31 December 2026, for Laravel teams

PHP 8.2 stops receiving security fixes on 31 December 2026. If your Laravel application runs on it, this is also the one thing that stops you reaching Laravel 13, whose minimum is PHP 8.3. Moving PHP now clears both problems.

By itmarkerz Technologies. Updated 30 October 2026.

A double deadline

On Laravel 12 you face two dates close together: PHP 8.2 ends on 31 December 2026, and Laravel 12 security fixes end on February 24, 2027. The fix for the second depends on the first, because Laravel 13 won’t install on PHP 8.2. Leave PHP until January and you’ll have about eight weeks left to do both.

Which Laravel versions accept which PHP versions
PHPLaravel 10Laravel 11Laravel 12Laravel 13
8.2YesYesYesNo
8.3YesYesYesYes
8.4NoYesYesYes
8.5NoNoYesYes

PHP 8.3 is accepted on every Laravel version in that table. So you can always move to it first, even on a Laravel version that’s already out of support, and leave the framework for a separate release.

Which version to move to

PHP branches and their support end dates, from php.net
PHPActive support untilSecurity support until
8.231 December 202431 December 2026
8.331 December 202531 December 2027
8.431 December 202631 December 2028
8.531 December 202731 December 2029

Dates are from php.net’s supported versions page, checked on 30 October 2026.

  • PHP 8.3 is the smallest step, with about a year of support left. It suits you if a dependency or your host rules out anything newer, but expect to repeat this project in 2027.
  • PHP 8.4 is what we’d pick for most applications on Laravel 11, 12 or 13. Some current package releases now require it, including spatie/laravel-activitylog 5.1.3, spatie/laravel-query-builder 7.3.7, spatie/laravel-translatable 6.15.0, pestphp/pest-plugin-laravel v5.0.1. The next framework major looks likely to need it too: Laravel’s master branch requires PHP 8.4 today, though that can change before release.
  • PHP 8.5 gives the longest window, and works on Laravel 12 and 13. It has more deprecations to clear, so read what PHP 8.5 changes for Laravel first. It also rules out older lines of some packages: inertiajs/inertia-laravel 1.x, for example, stops at PHP 8.4.

What the move from 8.2 to 8.3 changes

PHP 8.3 is a gentle release for most web applications. These are the items from php.net’s incompatible changes and deprecations lists that we’d look for in Laravel code.

  • Negative array keys. Assigning index -5 to an empty array now makes the next key -4, not 0. Code that builds arrays from offsets can change shape without any error.
  • Date exceptions. The Date extension now throws DateError and DateException where it used to raise warnings. A try block that catches something narrow, or code that checks for warnings, needs another look.
  • Empty string increments. Using ++ on an empty or non-alphanumeric string is deprecated, as is -- on an empty or non-numeric string.
  • Class helpers. Calling get_class() or get_parent_class() with no argument is deprecated. It’s common in older base classes.
  • Assertions and reflection. assert_options() and calling ReflectionProperty::setValue() with one argument are both deprecated. Test helpers are the likely place to find them.

If you’re going on to 8.4, also sweep for implicitly nullable parameters. Our PHP 8.1 guide shows the fix, along with the 8.2 changes that may still be in your logs.

Where PHP moves go wrong

The code changes are often the easy part. These environment problems are harder to spot:

  • Web and CLI on different versions. Hosting panels often change the version for the website but not for cron or queue workers. Check php -v in the same context your scheduler uses.
  • A pinned platform. If composer.json sets config.platform.php to 8.2, Composer keeps resolving for 8.2 after the server has moved. Update or remove it.
  • Missing extensions. Each PHP version has its own set of extensions on many servers. Run composer check-platform-reqs on the new version before you switch traffic.
  • Workers still on the old code. Long-running queue workers and Octane keep the old process until restarted, so restart them as part of the release.

Why this deadline is worth taking seriously

PHP’s last security releases show what you’d lose. On 21 October 2026, the PHP project published security releases, including PHP 8.2.35. Our write-up of those vulnerabilities has the checklist we used. Teams on 8.2 could simply update. After 31 December, php.net won’t publish a release like that for 8.2.

A Linux distribution or hosting vendor may keep backporting fixes for its own PHP packages, so read their notice if you rely on one. Those fixes cover the runtime only. Composer packages will keep raising their PHP floors whatever your vendor does, and you’ll slowly lose access to new releases.

If you’d rather not do this yourself

A PHP move on its own is usually a small piece of work, and your team may well handle it with the steps above. If you’d like it done along with the framework, our Laravel upgrade service covers both for one fixed price, and Laravel maintenance keeps PHP current afterwards. For the framework and package side, use the package compatibility matrix and Laravel and PHP matrix.

PHP work we have delivered

See all our work

Questions

When does PHP 8.2 reach end of life?

31 December 2026, according to php.net’s supported versions page. Active support for 8.2 ended on 31 December 2024, so it has been receiving security fixes only since then.

Which Laravel versions still accept PHP 8.2?

Laravel 10 (PHP 8.1–8.3), 11 (PHP 8.2–8.4) and 12 (PHP 8.2–8.5). Laravel 13 needs PHP 8.3 or later.

Should I go to PHP 8.3, 8.4 or 8.5?

For most Laravel 12 or 13 applications, 8.4. It has security support until 31 December 2028, and some current packages now need it. Choose 8.3 if a dependency or your host won’t go further, and 8.5 if you’re on Laravel 12 or 13 and want the longest window.

Will my site break on 1 January 2027?

No. PHP doesn’t switch off. The change is that php.net stops publishing fixes, so a vulnerability found after that date has no official PHP 8.2 release to install.

Still on PHP 8.2?

Tell us your Laravel version and where you host. We’ll tell you which PHP version suits you and what the move involves.

We reply within one business day (IST).