Laravel upgrades
PHP 8.1 end of life and Laravel
PHP 8.1 stopped receiving security fixes on 31 December 2025. If your Laravel application runs on it, you can move PHP first, without changing the framework, and split one risky change into two smaller ones.
By itmarkerz Technologies. Updated 30 October 2026.
Where each PHP version stands
| PHP | Security support ends | Laravel versions that accept it |
|---|---|---|
| 8.1 | Ended 31 December 2025 | 10 |
| 8.2 | 31 December 2026 | 10, 11, 12 |
| 8.3 | 31 December 2027 | 10, 11, 12, 13 |
| 8.4 | 31 December 2028 | 11, 12, 13 |
| 8.5 | 31 December 2029 | 12, 13 |
PHP dates are from php.net’s supported versions page and the end-of-life list. The Laravel column is from the Laravel release notes, and our versions page has the framework dates.
Two end-of-life problems, one server
If your application is on PHP 8.1 and Laravel 10, whose own security fixes ended on February 4, 2025, you have two separate gaps: the language and the framework. PHP 8.3 is the useful overlap, because Laravel 10 accepts it and so does Laravel 13.
That gives you a two-stage plan. Move to PHP 8.3 on Laravel 10 and release it. Once that has settled, upgrade the framework. If something breaks at either stage, you know which change caused it.
Your hosting may complicate the picture. Some Linux distributions backport security fixes to the PHP packages they ship, so check your vendor’s notice before assuming you are exposed. Backports don’t help with Composer packages, though, as those drop old PHP versions on their own schedule.
What breaks moving from PHP 8.1
The changes below are mostly deprecations, so they appear as log noise first. Clearing them while you are in the code saves a harder fix at the next major PHP release.
- Dynamic properties (8.2). Setting an undeclared property on a class is deprecated unless the class uses
#[\AllowDynamicProperties]. Older models, services and vendor code often do this. - String interpolation (8.2). The
"${var}"style is deprecated in favour of"{$var}". - Encoding helpers (8.2).
utf8_encode()andutf8_decode()are deprecated, which matters for old CSV imports and integrations. - Implicitly nullable parameters (8.4).
function foo(T $a = null)should becomefunction foo(?T $a = null). A sweep now saves returning to it if you later go to 8.4.
Details are in php.net’s PHP 8.2 and PHP 8.4 deprecation lists.
A short plan for the PHP move
- Check that your host or server image offers PHP 8.3, including for CLI, cron and queue workers.
- Run your test suite on 8.3 with deprecations visible. Then run
composer updatewith PHP 8.3 as the platform, to see which packages object. - Check PHP extensions on the new version. A missing one fails at runtime, sometimes only on one rarely used path.
- Release to staging, run the flows that make you money, then release to production with the old version still installed.
PHP can also be part of a wider project. We moved a cabinet manufacturer’s system from PHP 5.6 all the way to 8.5 as part of its Laravel 13 upgrade. See what that kind of work involves on our upgrade service page.
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 did PHP 8.1 reach end of life?
31 December 2025, according to php.net's list of unsupported branches.
Which Laravel versions still accept PHP 8.1?
Of the versions we track, only Laravel 10, which supports PHP 8.1–8.3. Laravel 11 and later need PHP 8.2 or above.
Should I move to PHP 8.2 or 8.3?
PHP 8.3 at least. PHP 8.2's security support ends on 31 December 2026, and Laravel 13 needs 8.3 or later, so stopping at 8.2 means repeating the work almost immediately.
More on Laravel upgrades
- 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.
- 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.
Running Laravel on PHP 8.1?
Tell us your Laravel version and where it is hosted. We will tell you whether PHP can move on its own, and what the full upgrade would cost.
We reply within one business day (IST).