Blog
PHP Has Been Dying for 20 Years. It’s Doing Fine.
- software-engineering
- php
- laravel
If you’ve been around web development long enough, you’ve heard it.
PHP is dead. PHP is dying. PHP is a joke. Real engineers use something else.
That story has been running for about twenty years. Somehow the language keeps showing up in production, paying bills, and shipping features while the eulogy gets rewritten for the next conference season.
The gap between discourse and reality
A huge portion of the web still runs on PHP. WordPress alone is enough to make the “nobody uses this” claim look silly. Add Laravel apps, Magento stores, custom CMS builds, and a mountain of agency work, and you get a quieter truth:
A lot of software that makes money is written in PHP.
Discourse likes novelty. Production likes boring tools that hireable people already know. Those two audiences do not vote the same way.
What people are usually complaining about
A fair chunk of the hate is aimed at old PHP.
Undeclared everything. Inconsistent function names. Copy-paste tutorials from 2009. Apps that grew without tests, without structure, and without anyone owning the architecture. That stuff is real, and it left scars.
Modern PHP is a different conversation.
Typed properties. Union types. Enums. Attributes. Better error handling. Composer as the default. Frameworks that push you toward structure instead of a folder full of includes. The language kept moving while some of the jokes stayed frozen in place.
If your mental model of PHP is still “a template language with SQL in the middle,” you’re arguing with a ghost.
Laravel didn’t save PHP. It showed what PHP can be.
Laravel gets credit for making PHP feel modern to a lot of developers, and that credit is earned.
But the deeper point is larger than one framework. PHP can support clear domain code, queues, events, solid testing, and an application structure that doesn’t embarrass you in review. The ceiling was never as low as the memes suggested.
You can still write a mess in Laravel. You can also write a mess in Node, Go, or Rust. Language choice does not replace judgment.
“Dying” is often code for “not trendy”
Tech Twitter (and whatever replaced it this month) rewards the new stack announcement.
That’s fine for exploration. It’s a bad compass for every product decision. A language can be unfashionable and still be the right tool for a CMS, a commerce site, an internal admin, or a CRUD-heavy SaaS that needs to ship this quarter.
Hiring matters. Hosting matters. Ecosystem maturity matters. The cost of rewriting a working system into something cooler almost never matters as little as the rewrite pitch claims.
When you should leave PHP
I’m not saying PHP is always the answer.
If your team’s strength is elsewhere, go elsewhere. If the problem is a hard realtime system, a mobile runtime, or a domain where another ecosystem clearly wins, don’t force PHP out of nostalgia.
What I am saying is this: don’t abandon a working stack because a stranger on the internet declared it dead again.
Still shipping
I still reach for PHP when the job fits. WordPress when content and plugins are the product surface. Laravel when the app needs structure, speed of delivery, and a stack the next engineer can actually maintain.
Not because I stopped learning other languages. Because “dying” was never a technical diagnosis. It was a vibe.
PHP has been dying for twenty years.
It’s doing fine. And so are a lot of the products still running on it.