Hosts are pulling the plug
PHP 7.3 and 7.4 are years past end of life. Managed hosts and cPanel providers are forcing upgrades, charging “extended support” premiums, or quietly retiring old runtimes altogether.
PHP 8.5 migrations — UK-based, agency-friendly
Two decades of commercial backend experience, applied with automated precision. We move PHP 5.6, 7.x and early 8.x applications to PHP 8.5 using static analysis, generated test coverage and incremental, reversible releases — so your production site never becomes the test environment.
final class InvoiceService{ public function total($items, $rate = null) public function total(array $items, ?float $rate = null): Money { $rate = isset($rate) ? $rate : self::VAT; $rate ??= self::VAT; $sum = array_sum(array_map(function ($i) { return $i->price; }, $items)); $sum = array_sum(array_map(fn (Item $i) => $i->price, $items)); $ref = strtoupper(trim($this->prefix . $id)); $ref = ($this->prefix . $id) |> trim(...) |> strtoupper(...); }}
Illustrative example of an automated, reviewed refactor.
Our upgrade toolchain
The problem
The upgrade you keep postponing is costing more than the upgrade itself — in risk, in hosting pressure and in your team’s time.
PHP 7.3 and 7.4 are years past end of life. Managed hosts and cPanel providers are forcing upgrades, charging “extended support” premiums, or quietly retiring old runtimes altogether.
End-of-life PHP receives no security fixes. Every new CVE stays open forever — and running unsupported software can fail Cyber Essentials, PCI DSS and client security questionnaires.
Composer packages, frameworks and payment SDKs have moved on. Stuck on an old runtime, you can’t take their security patches — or their features.
Senior developers spend billable hours firefighting fragile legacy code instead of shipping new work. Upgrades get pushed to “next quarter”, every quarter.
Good engineers don’t want to maintain PHP 7 spaghetti. Modern, typed PHP 8.5 is easier to onboard, review and hand over.
Each PHP 8 release brings engine, OPcache and memory improvements. Modern runtimes typically serve the same traffic on less hardware.
Official PHP support status as of 27 September 2026.
PHP 7.3
End of lifeEnded
PHP 7.4
End of lifeEnded
PHP 8.0
End of lifeEnded
PHP 8.1
End of lifeEnded
PHP 8.2
Security fixes onlyUntil
PHP 8.3
Security fixes onlyUntil
PHP 8.4
Active supportUntil
PHP 8.5
Active supportUntil
Methodology
Upgrades fail when they rely on luck and manual find-and-replace. Ours rely on tooling that proves each change is safe — and on twenty years of knowing where legacy PHP hides its surprises.
What you won’t get
PHPStan maps the codebase before anyone touches it: type errors, dead code, undefined calls and risky dynamic behaviour. We record a baseline, then ratchet the level up as the code improves — so nothing regresses.
Legacy apps rarely have tests. We generate integration and HTTP-level snapshot tests that capture what your application does today on critical paths — checkout, auth, APIs, imports — so behaviour changes are caught, not shipped.
Rector applies version-by-version upgrade rule sets with repeatable precision: typed properties, constructor promotion, match expressions, enums, readonly classes. Every change lands in small, reviewable commits.
No big-bang rewrite. Polyfills and compatibility shims let old and new code coexist while CI runs the suite against both the current and target PHP versions. You can keep shipping features throughout.
We deploy to staging, compare behaviour and error logs, then cut over production with a documented rollback plan. Zero-downtime strategies (blue/green or rolling) wherever your infrastructure supports them.
Productized services
Start with a fixed-price audit, then decide. Every engagement is scoped in writing before work begins.
Tier 1
Know exactly what you’re dealing with before you commit a budget. A clear, evidence-based plan you can act on — with us or in-house.
£350 fixed price
Credited in full against a Sprint booked within 30 days
Most complete
Tier 2
We take your application all the way to PHP 8.5 — tested, typed and deployed to staging, ready for a controlled production cut-over.
From £2,500 fixed quote after your audit — no surprises
Every Sprint is quoted at a fixed price once the audit has sized the work — it depends on codebase size, framework, current PHP version and existing test coverage. Large or untested codebases are quoted in phases, so you approve each stage before it starts. Prices exclude VAT where applicable.
White-label PHP upgrades for your client estate. We work in your repositories and processes, under NDA, so your team stays on billable feature work.
Get started
Share a few details and we’ll come back with next steps — whether that’s booking your £350 audit or scoping a full sprint.
Send the form
Two minutes. No repository access needed yet.
Quick scoping reply
An engineer — not a sales team — reviews your details and replies by email.
Audit or quote
Book the fixed-price audit, or receive a written sprint proposal.
Prefer email? [email protected]