Member-only story
From 7.2 to 8.3: How I dragged a legacy PHP project into 2025 — and lived to Tell the Tale
None of what follows is hypothetical. The bugs were real, the deadlines were real, and the caffeine bill was painful.
Upgrading a decade-old code-base that still smells faintly of PHP 5 is never a weekend chore. When the task landed on my desk — migrate a production app locked to PHP 7.2 + MySQL 5.7 all the way to PHP 8.3 — I knew it would be a game of whack-a-mole: squash one incompatibility, three more pop up.
“It’ll only take a week,” they said.
🔓 Not a Medium member yet? Click here to access this article for FREE!
One month (and several pots of coffee) later, the same app now purrs on PHP 8.3. This is the story of that small, personal victory — equal parts war journal and survival guide.
Where I Started
- A disciplined team.
PHPStan was already running at level 6 with extra plug-ins and almost no ignores. Every variable carried a clear type hint (bool
,array<string,int>
,Model_User
, …). That paid dividends later. - A wild framework.
The application ran on Koseven, a community-patched fork of Kohana. The original Kohana was built…