The other day, while having coffee with a colleague, he asked me: “Why are you still using PHP, that outdated language?” It’s a question I’ve heard many times. But recently, I discovered two tools that made me want to argue back: FrankenPHP and RoadRunner.
Honestly, I understand why many people think PHP is “slow.” The fact that it has to restart from scratch on every request is genuinely frustrating. But these two tools completely changed the way I see PHP.
The first time I saw the name, I couldn’t stop laughing. But after trying it out… wow. FrankenPHP is essentially a drop-in replacement for Apache or Nginx, but it’s written in Go and speaks PHP like a native. The best part? You don’t have to change your code at all. Just run it, and your PHP app becomes a long-living service.
I tested it with a simple Slim app — no complex config, no FPM — and the response time was cut in half. It felt like upgrading from a bicycle to a motorbike.
Some features I really like:
- Built-in TLS and HTTP/3 support (no need for an Nginx reverse proxy anymore!)
- Automatic reload in development mode (goodbye, nodemon — but for PHP)
- Class preloading into memory for better performance
- Can serve static files directly — no external web server needed
RoadRunner – More powerful, but a bit “hardcore”
RoadRunner is a different beast. It’s not just a web server — it’s a whole ecosystem. Your PHP app runs as a worker process, and RoadRunner takes care of orchestration.
At first, the .rr.yaml config file looked intimidating. But once I understood how it works, I realized just how powerful it is:
- Zero reload in production (your PHP app keeps running non-stop)
- Built-in queue system (no need for Redis or Beanstalk in many cases)
- GRPC support (you can build microservices in PHP!)
- Built-in metrics and monitoring
This tool is perfect for projects that need high performance, or when you want PHP to do things it usually doesn’t — like queue handling, long-polling, or real-time features.
Quick Comparison (from my personal experience)
FrankenPHP:
- Easy to use — almost plug-and-play
- Great for traditional web apps that just need a performance boost
- Clear documentation and a friendly community
- Ideal for Laravel or Symfony apps
RoadRunner:
- More powerful, but has a steeper learning curve
- Best suited for APIs, microservices, or when you need more control
- PSR-7 native (important if you’re building APIs)
- Can replace Supervisor, Nginx, and even parts of Redis in some setups
Final Thoughts
Honestly, I don’t think I’ll be dropping PHP anytime soon. Tools like these prove that PHP can evolve — and that it’s still very capable of meeting modern development needs. Of course, not every project will need them. But when performance matters, or when you want your PHP app to behave a little less like “typical PHP,” these are options worth considering.