Good. PHP-FPM needs a challenger as anyone who has tried to debug it or its pools knows. Or to tune it (so many modes, so many configuration options).<p>Litespeed's PHP LSAPI [1] shows how good performance can be with other setups. It'll be great if FrankenPHP gets to the same state.<p>1. <a href="https://www.litespeedtech.com/open-source/litespeed-sapi/php" rel="nofollow">https://www.litespeedtech.com/open-source/litespeed-sapi/php</a>
What is the difference between this and Roadrunner? It seems to do the same stuff.<p><a href="https://github.com/roadrunner-server/roadrunner" rel="nofollow">https://github.com/roadrunner-server/roadrunner</a>
So it's mod_php for Caddy, in reverse?<p>The traditional idea is to build a plug-in for the parent webserver. By essentially "making a fork" of Caddy, if you want to add other plugins to Caddy and then incorporate them into FrankenPHP, it's a lot more work. If instead you ship a PHP plugin to Caddy, you can manage Caddy instead and mix and match different functionality in one place.<p>But I guess it's heretical to suggest somebody use plugins in Go, if the whole idea is everything is a static binary.
I was in the conference (20221014, afup 2022), where frankenphp was released live. The conference was really interesting and answer many (if not all) of the questions raised in comments.<p>I'v checked and unfortunately the video recording is not available for now, I will post a link here as son as available.
If I understand it correctly the idea of worker mode is to have a persistent application running where you can have the same objects in memory from one request to another rather than relaunching the app from scratch (requiring files, constructing objects, fetching data from some database) again for each request.<p>Is that it?
This is amazing, and way more advanced than what was there. Going to definitely use it on the next project.<p>Previously, there was <a href="https://github.com/deuill/go-php" rel="nofollow">https://github.com/deuill/go-php</a> which was PHP5 and PHP7, but you needed to build PHP with ZTS. I had to forke it to focus on PHP5 and bring some improvements - my primary goal was to port some legacy PHP over iteratively via the Strangler pattern. If it can still be useful to some, the fork is here - <a href="https://github.com/borancar/go-php" rel="nofollow">https://github.com/borancar/go-php</a>
Not really sure what the pros of this is. Simple to deploy in a docker image? Didn't know that was an issue. I guess performance also takes a hit, and that worker mode is a good amount slower than Swoole?<p>Some benchmarks against mod_php, nginx+php-fpm and swoole would be nice.
So after looking at the slidedeck on the authors blog, I'm rather confused. How does FrankenPHP keep the code in memory if each request is in a separate memory space?
I've been watching how Go and Rust tooling has been finding its way into the JavaScript ecosystem. I've been out of the PHP realm for about 10 years but I did find RoadRunner for PHP at one point. That's also an app server written in Go I believe. I wonder how this compares.
I might be missing the obvious but why would you add extra complexity to your infrastrucutre setup when PHP can be run natively from within caddy, apache, nginx via fastcgi.
I see a bit of C as well ? Also, do we need to use Docker ? I am very interested in trying but wanted to check.<p>If it is Go, can I not just compile the binary and execute ?
It'd be great to see how a Laravel app could run on FrankenPHP and see if there are speed gains.<p>My current setup is a DigitalOcean Droplet with Nginx and php-fpm.
Looking at the forked PHP source <a href="https://github.com/php/php-src/compare/master...dunglas:php-src:frankenphp-8.2" rel="nofollow">https://github.com/php/php-src/compare/master...dunglas:php-...</a> I do not expect compatibility issues.
PHP is already FrankenPerl, and Perl FrankenAwk?<p>What happened to the times where some crazy person would simply slap together an interpreter and call it a language?<p>Somehow, language creation got more and more sophisticated these days.