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.
| PHP | Laravel 10 | Laravel 11 | Laravel 12 | Laravel 13 |
|---|---|---|---|---|
| 8.2 | Yes | Yes | Yes | No |
| 8.3 | Yes | Yes | Yes | Yes |
| 8.4 | No | Yes | Yes | Yes |
| 8.5 | No | No | Yes | Yes |
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 | Active support until | Security support until |
|---|---|---|
| 8.2 | 31 December 2024 | 31 December 2026 |
| 8.3 | 31 December 2025 | 31 December 2027 |
| 8.4 | 31 December 2026 | 31 December 2028 |
| 8.5 | 31 December 2027 | 31 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-activitylog5.1.3,spatie/laravel-query-builder7.3.7,spatie/laravel-translatable6.15.0,pestphp/pest-plugin-laravelv5.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-laravel1.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
-5to an empty array now makes the next key-4, not0. Code that builds arrays from offsets can change shape without any error. - Date exceptions. The Date extension now throws
DateErrorandDateExceptionwhere it used to raise warnings. Atryblock 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()orget_parent_class()with no argument is deprecated. It’s common in older base classes. - Assertions and reflection.
assert_options()and callingReflectionProperty::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 -vin the same context your scheduler uses. - A pinned platform. If
composer.jsonsetsconfig.platform.phpto 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-reqson 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
Platform for Indian insurance brokers, run for about five years: broker and sub-broker hierarchy, policy and claims management, customer login, supervisor reports, IRDAI regulatory reporting and reinsurance lead management.
- Sector
- Insurance & financial services
- Region
- India
- Year
- About 2014–2019
- Stack
- PHP, Laravel
- Engagement
- Built and run for about five years
Custom ERP for an Indian fabrication wholesaler: quoting, production, multi-location inventory and SKUs, dispatch, VAT billing, accounting, reporting and a customer ordering portal. Two-year build, 2012–2014. Faster month-end, accurate stock.
- Sector
- Manufacturing & wholesale
- Region
- India
- Year
- About 2012–2014
- Stack
- PHP
- Engagement
- Custom build, about two years
A dedicated team of 14–15 PHP developers recruited, employed and managed by itmarkerz in Kerala for about three years, working exclusively on a Dubai technology company's products. The model behind our hire-developers offer.
- Sector
- Technology & software companies
- Region
- UAE
- Year
- About 2013–2016
- Stack
- PHP
- Engagement
- Dedicated team of 14–15 developers, about three years
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.
More on Laravel upgrades
- Laravel package compatibility matrixWhich release of each common package allows which Laravel and PHP version.
- Laravel 12 end of life: what to do firstThe security deadline, and the two things that block Laravel 13.
- Laravel on PHP 8.5: what actually breaksDeprecations to search for, including the PDO constants.
- Upgrading from Laravel 11 to 12Carbon 3, UUIDs and file paths: the changes that throw no errors.
- Upgrading from Laravel 10 to 11You can keep your structure. Here’s what you can’t keep.
- Upgrading Laravel 5–9Step through each version, move to a fresh install, or rebuild.
- Laravel Shift or an upgrade teamWhen an automated tool is enough, and when it isn’t.
- Filament upgrade path to Laravel 13Which order to move in from Filament 2, 3, 4 or 5.
- Which Laravel version do you need for the AI SDK?The version floors, and what to do if you’re below them.
- Laravel 14: release window and how to planWhat’s known, what isn’t, and what to do today.
- Inherited a Laravel app? The first 10 daysAccess, backups, an inventory and a safe deploy, before any new features.
- Laravel 11 end of life: what to do nowStop at Laravel 12 or go straight to 13.
- Laravel 10 end of life: your upgrade optionsFour routes off Laravel 10, and the breaking changes in the first step.
- How much does a Laravel upgrade cost?Our published prices by application size, and what moves a quote.
- Upgrading from Laravel 12 to 13The changes that matter, in the order we would check them.
- PHP 8.1 end of life and LaravelWhy PHP can move before the framework does.
- Laravel upgrade checklistEvery step from inventory to the first week after release.
- Laravel vs Symfony: an upgrade decisionSupport windows compared, and when changing framework makes sense.
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).