FrankenPHP: The Future of PHP? // PHPverse 2025 ![rw-book-cover](https://i.ytimg.com/vi/k-UwH91XnAo/maxresdefault.jpg) ## Metadata - Author: [[PHP Annotated]] - Full Title: FrankenPHP: The Future of PHP? // PHPverse 2025 - Category: #articles - Document Note: --- tags: - #php - #frankenphp - #webdevelopment Author: Kevin (Presenter) Source: PHPverse 2025 Conference Talk on YouTube Reference: https://www.youtube.com/watch?v=k-UwH91XnAo date created: 2025-06-19 09:00 --- # Title: FrankenPHP: The Future of PHP? Insights from PHPverse 2025 ## Table of Contents:  - 📝 Summary - 📖 Main Content - 🗒️ Notes - 📖 References - 🗣️ Paraphrase - 📰 Newsletter - ✅ Action Items - 🧪 Hypotheses - 📊 Methodology - ❓ Questions - 🔮 Future Research - 💡 Implications - 🧠 Learning Styles Assessment - 📊 Accessibility Assessment - 🌍 DEIB Assessment - ✅ Logical validity - 🔍 DARVO Analysis - 🔍 SEO Evaluation - 🎯 Conclusion ### References: - [FrankenPHP Talk — PHPverse 2025](https://www.youtube.com/watch?v=k-UwH91XnAo) - [PHP Official Website](https://www.php.net/) - [Caddy Web Server](https://caddyserver.com/) - [Symfony](https://symfony.com/) - [Laravel](https://laravel.com/) ## 📝 Summary: FrankenPHP represents a significant leap forward for PHP development by combining PHP’s official engine with the Go language and the Caddy web server. It simplifies PHP installation, boosts performance dramatically (up to 80% faster in worker mode), and brings modern web server capabilities like HTTP3, structured logging, and websocket support natively. Designed for both development and production, it supports Docker, static binaries, and seamless integration with popular frameworks like Symfony and Laravel. Notably, it introduces a new worker mode to optimize request handling, reducing redundant initialization. The project is supported by the PHP Foundation and aims to become a future standard for PHP deployment. ## 📖 Main Content: FrankenPHP emerged to address the need for modern, easy-to-install, and fast PHP tooling. It replaces the traditional Apache+mod_php or PHP-FPM setups with a cloud-native, Go-based server that integrates directly with the official PHP engine. This removes network overhead by executing PHP scripts within the same process as the web server. Features like automatic HTTPS provisioning via Let’s Encrypt, HTTP3 support, and advanced logging bring PHP closer to current web ecosystem standards. The project provides Docker images and static binaries, facilitating easy deployment across environments, including bare metal servers. Its worker mode leverages Go’s concurrency primitives (goroutines, channels) to preload application state once and reuse it for incoming requests, drastically cutting response times and server costs, especially for frameworks like Symfony and Laravel. Advanced HTTP features such as support for the 103 Early Hints status code allow preloading of critical assets during page generation, improving perceived page load speed—a feature unavailable in PHP-FPM due to protocol limitations. FrankenPHP also introduces a novel way to write PHP extensions in Go without manually coding C. This bridges PHP with the growing ecosystem of Go libraries, including those for Kubernetes and DevOps, enabling performance-sensitive or concurrent tasks to be implemented efficiently. Debugging is supported for both standard and worker modes with popular tools like Xdebug and Laravel’s DD. Collaboration with the PHP Foundation enhances maintenance and integration, while benchmarks and user feedback show promising performance gains and cost savings. ## 🗒️ Notes - PHP evolved from a templating language to a robust programming language needing modern tooling. - Existing runtimes like Swoole and Roadrunner indicate demand for better PHP runtimes. - FrankenPHP combines Caddy web server (written in Go) and the official PHP engine. - Written in Go for speed and concurrency advantages using goroutines and channels. - Supports all PHP extensions (official and third-party) out-of-the-box with static builds. - Can be installed via Docker images, static binaries, and Linux package managers. - Worker mode preloads and reuses app state across requests, reducing redundant setup. - Compatible with Symfony (enabled by default) and Laravel (via Octane package). - Benchmarks show up to 80% faster response time and significant hosting cost reduction. - Supports HTTP/3, automatic HTTPS via Let’s Encrypt/ZeroSSL, structured JSON logs, and OpenTelemetry. - Implements HTTP 103 Early Hints for asset preloading, unavailable in PHP-FPM due to protocol limits. - Enables writing PHP extensions in Go, easing development and expanding capabilities. - Debugging tools remain compatible; worker mode debugging is slightly more complex but supported. - Collaboration with PHP Foundation improves project sustainability and integration. - Ongoing discussions about making FrankenPHP the default PHP runtime recommendation. - Community engagement encouraged; GitHub stars goal to create a FrankenPHP mascot elephant. ## 📖 References: - YouTube: [FrankenPHP talk](https://www.youtube.com/watch?v=k-UwH91XnAo) - PHP official: https://www.php.net/ - Caddy: https://caddyserver.com/ - Symfony: https://symfony.com/ - Laravel: https://laravel.com/ ## 🗣️ Paraphrase:   1. Original: “FrankenPHP replaces traditional web servers and PHP engines, providing an easy installation process for local and production use. It is cloud-native, optimized for Docker, and is the fastest PHP engine due to its Go-based architecture...” Paraphrase: FrankenPHP serves as a substitute for conventional PHP setups like Apache with mod_php or PHP-FPM, simplifying installation for both development and live environments. Built to work seamlessly with Docker and cloud platforms, its foundation in Go language makes it the quickest PHP runtime available. 2. Original: “The worker mode preloads and reuses application state for multiple HTTP requests, cutting down response times by eliminating repeated bootstrapping...” Paraphrase: In worker mode, FrankenPHP loads and maintains your app’s necessary components ahead of time, allowing subsequent requests to run faster by skipping redundant initialization, significantly enhancing performance. ## 📰 Newsletter: 🚀 **Meet FrankenPHP: The Future of PHP Development!** PHP just got turbocharged. FrankenPHP blends the power of the official PHP engine with the blazing speed of Go and the modern features of the Caddy web server. Whether you're starting a new project or aiming to optimize production, FrankenPHP offers lightning-fast execution, native HTTP/3 support, and easy Docker deployment — no complex setup required. Framework fans, rejoice! Symfony and Laravel users can tap into a new worker mode that boosts response times by up to 80%, saves server costs, and plays nicely with your favorite debugging tools. Plus, developers can now write PHP extensions in Go, opening doors to concurrent processing and integration with DevOps tools like Kubernetes. Ready to try it? Check out the [PHPverse 2025 talk](https://www.youtube.com/watch?v=k-UwH91XnAo) and start building faster, smarter PHP apps today. --- ## ✅ Action Items: - Share FrankenPHP insights with the WordPress and PHP developer communities to encourage early adoption and feedback. - Integrate FrankenPHP knowledge into PHP training materials, emphasizing its ease of installation and performance benefits. - Advocate for sustainability and support of open source PHP tooling by monitoring and contributing to FrankenPHP development. - Explore writing WordPress PHP extensions using Go through FrankenPHP’s new tooling to improve plugin performance and concurrency. - Prepare talks or workshops about modern PHP runtime innovations aligned with WordPress’s evolving ecosystem. - Support inclusion of FrankenPHP in OSPO initiatives, fostering collaboration with PHP Foundation and other stakeholders. ## 🧪 Hypotheses: - Adopting FrankenPHP’s worker mode in high-traffic WordPress sites reduces server resource consumption by at least 30%. - Writing PHP extensions in Go via FrankenPHP results in measurable performance improvements over traditional C extensions. - Use of HTTP 103 Early Hints with FrankenPHP improves frontend page load times and user engagement metrics compare - Summary: FrankenPHP, a modern high-performance PHP application server, is now officially supported by the PHP Foundation. FrankenPHP integrates PHP directly into Go and Caddy, simplifying deployment, improving performance, and reducing infrastructure costs. It powers real-time features, supports advanced hosting scenarios, and includes a performance-boosting worker mode — already adopted by frameworks like Laravel and Symfony. Let’s explore how FrankenPHP can help you streamline your PHP development workflow. PHPverse is an online event to celebrate and bring together the PHP community, organized by JetBrains: https://lp.jetbrains.com/phpverse-2025/ Watch all the PHPverse 2025 talks here: https://www.youtube.com/playlist?list=PL0bgkxUS9EaI6rjDdRvihJn90OztDsxTO #php #code #oss - URL: https://www.youtube.com/watch?v=k-UwH91XnAo It's time to introduce our first speaker and uh it's already like a super interesting topic because you know PHP started out as a templating language essentially right and then it evolved into something else uh into honestly a great programming language. It was never like the um like the intention of Rasmus to to yeah end up where where we were now are. Um, and so we've seen quite a lot of evolution over the years. In the past years, I've noticed that like the the tooling around PHP is getting like more and more traction. And one of the things there are uh the PHP runtimes, right? I'm thinking stuff like swool and uh roadrunner. And then there's Frank and PHP, right? And I I think it's really showing that the the changes that are happening around PHP and outside of PHP are impacting how and what is being developed with and in PHP. Um and thus there's a need for for change, for evolution uh for new tooling um to really fit our current times. And so I'm really looking forward to introducing uh Kevin. Um yeah, come on up Kevin. Come on up. Yeah, he's going to walk in front of the camera here. Oh no. Oh nice. They did figure out how to not do that. Nice. Awesome. Kevin, good morning, midday, afternoon. Like people are watching from different time zones. How are you? Fine. And you? I'm very happy to be there with you. Yeah. Nice. Awesome. Yeah. I mean, we're we're doing good. It's uh it's good to be here. And yeah, you're the first one giving a talk today. Maybe a little. No pressure. No pressure. Um but it's a super interesting topic. So, um actually, um let me quickly introduce you. so that you don't have to worry about like spending too much time here uh and you can just dive straight into the interesting parts. Right. So, uh so Kevin is the creator of of API platform. Yes. Um you're a Symphony Core contributor also. Yes. Um and uh you made Franken PHP. Exactly. Yeah. And that's what you're going to talk about. So actually I just want to give the stage to you Kevin and uh you take it away and tell us all about Franken PHP. First of all I'm not the only one working on the project. And uh thanks to the contributors that are making it an awesome project because it wasn't possible to do that alone. Awesome. Go ahead. So Franken PHP um you may know that uh the project has been uh has been announced to be supported by the PHP foundations and for the birthday of PHP we just moved the source code of the project in the PHP organization. So uh first I will introduce what's franken php what the benefit of using it uh and I hope that uh uh you will try it on your next projects and then I will introduce a brand new feature that we created just for this conference and that will change the way you can build your PHP applications because you will not use PHP anymore maybe with something else. So at the very beginning the goal of fun PHP was to have an easy way to install PHP locally. Say as a newcomer I want to get started. I don't want to have to install a web server and install PHP SPM and configure everything to have that working. I just need something easy. So that was the first goal to be able to easily install Franken PHP locally for development but also in production. So uh basically Franken PHP is a replacement for both your web server and your PHP engine. It can replace and PHP SPM or Apache and mod PHP. It has been designed from the very beginning to be cloud native. So it embraces Docker as much as much as possible, but it's also possible to very easily deploy a full PHP stack on a bare metal server according to most recent benchmarks. It's the fastest PHP engine because it is written in Go and leverages some features, especially the Go routines of this programming language, making it super fast. Um, it has support for features that has been missing in the PHP ecosystem for a while. For instance, it supports the 103 HTTP status code that wasn't possible to implement with with PHP SPM and it has a websocket like capability built uh on top of another protocol called Mercur that we also develop at ltl.cope And by default it will work with any PHP app uh that is compatible with PHP 82 or superior. You don't have to do any modification to your app to uh run it with front end PHP to leverage some of the best features. Then you will have to do slight modifications. We will go into that. So the first go go goal was to make something very easy uh to get started with. So you can download a binary that will contain a modern web server with a lot of capabilities that you only have in very advanced web servers like the the paid version of engineix and a PHP engine which is built on top of the official one that is sponsored by the foundation. So it's not a a fork or a clone of the PHP engine. It's really using the the the true PHP from PHP SRC. Um we provide static builds. That means that you can get a single file containing the web server PHP itself and most of the popular PHP extensions all the official PHP extensions but also most of the almost all third party extensions are compatible with Franken PHP and are shipped in the default distribution of of Franken PHP and to run to run this uh this application server you don't need any runtime dependencies. So basically you can just download the file, execute it and you will have a working uh PHP server and project. We have been uh able to achieve that because actually front PHP uh is two components. There is a low-level go library uh which use uh which uses the the PHP engine as a C system library and as you may know in Go you can call C functions and in C you can call Go functions. So basically we created a sappy allowing the built-in web server provided by the standard Go library to execute PHP code by using the official PHP engine. That's the core of franken PHP. Um there are there is another component that is the one that is well known as Franken PHP. It's actually a custom build of the Kadi web server. Kadi is a a popular alternative to Engineix and Apache written in Go and leveraging the the the Go standard library and a lot of other very high quality Go libraries to add many many uh cutting edge features. So basically frontend PHP it's the Caddy web server with an extra Go module allowing to execute PHP scripts with the Kadi web server. So that means that with front end PHP you get a single file running a single process. There is no network exchanges between the web server and PHP as with PHP SPM. It's entirely function calls. So it's very very fast uh supporting both uh the modern stack like HTTP3 or anything like that. We will go into that and PHP and the most popular PHP extensions. You can use all the features provided by caddy by PHP and by the PHP extensions. You can also and that will be uh one of the announcement of this talk extend the web server and PHP using the Go programming language and basically all the the Go modules and libraries that are available and that has been designed for uh to be used locally but also in production and there are already several oers using front PHP in production. some of the features that you get out of the box. First, that one of the key feature of Kadi, there is native support for HTTPS certificates generations. That means that when you start the web server in production, uh automatically a certificate will be uh pro provisioned using let's encrypt or zero SSL and it will be automatically renewed. It supports all the uh very advanced features like uh encrypted hello for instance that is brand new and only supported by caddy and cloudflare for now. Um, it also has native support for the latest and greatest versions of the HTTP protocol including HTTP3 that is supported by default for modern compression including uh ZIT standards that has been added to Chrome uh during the past year and that is already supported by Franken PHP and it has out of the box a lot of modern features that are very popular in other ecosystems espec es especially in the Kubernetes ecosystem for instance, but not that much in the PHP ecosystems like structured logs in JSON. Uh, open metrics and open telemetry that is built in with a lot of insights that you can get on your application. an API that you can use to change the configuration of your P of your PHP app or your web server uh directly through HTTP native support for uh the 12 factor methodology graful reload and a lot of other features that are built into the the the tool mostly because it's built on top of Kad and Kadia has a lot of very powerful features to get started for your next uh PHP project That's very very easy. The first uh and the way that we recommend is to use Docker. So you are sure you run the exact same stack on every computer. So we provide official uh Docker images. You just have to uh share the directory containing your PHP code to the app directory of the official docker uh container. And to expose the standard HTTP, HTTPS and HTTP3 using UDP ports. And that's all. You will get native support for uh HTTPS even locally. A self signed certificate will be generated if necessary. If you don't want to use Docker because you prefer to uh run your code locally on your computer or you want to deploy uh on a bare metal server to to save some money for instance. Uh we also provide static binaries uh that are very easy to install. So there is a oneliner that you can uh run and then uh Franken PHP provide a single file containing both the caddy web server uh the PHP engine and the the wrapper allowing both to work together. So with a single command you can start a modern uh PHP server with impressive performance and that's quite new and that was that was quite hard to do. So a big thanks to the contributors that created these these features. But now we also have packages for homebrew both on Linux and Mac for Debian Ubuntu Redat and Fedora. So it's it's easier when using these packages to get the updates. Uh everything uh that uh uh is enabled by default in Franken PHP works with any existing PHP app. But we have an extra feature that can be enabled enabled that is optin. So you need to to make it uh explicit that you want to use this mode to improve the performance of your application. It's what we call the worker mode and it's quite similar to what you can achieve with roadr runner or fool but it's built into the the engine and it's closer it's written it's written entirely in C and it's faster and closer that what you can do especially with with roadr runner so this mode is entirely optional and optin you need to enable it but you can enable it with only very slight modifications to your PHP code And we will see that if you are using Symfony or Laravel, you you doesn't have to change the code at all. So the main idea behind the worker mode is that let's say that you create a hello world using Symfony or Laravel and you profile it using it profiler like Tideways or Blackfire. uh you will see that most of the time uh is taken autoloading the classes using the the the autoloader provided by by composer and initializing the objects the services uh that are needed for all requesties use by by all request by using the the dependency injection container provided by these frameworks. So basically uh there is a boot time for every uh request that can be quite slow and that is useless because it's always doing the same thing for every request. The main idea of the worker mode is to be able to start a script at the same time at the web server. Initialize everything that can be shared between request. For instance, autoloading the classes and initializing the global services needed for your Laravel or Symfony application. that there is no hard dependency to symfony or laravel and then let this script handle the HTTP request when they flow uh and reuse the objects uh that has been created uh to handle the next request. So uh this feature has been possible to implement because franken php itself is written in go and under the hood we provide a new php function allowing to do that that will reset the super globals uh the the stream handlers and things like that but keep some global variables in memory that the main idea and it's using the iconic feature of the of the features of the go programming language the go routines and the channels that allow to do uh to leverage the CPUs the multiple CPUs that you have in modern computer and to do concurrent programming very efficiently. This mode is automatically supported by Symfony. If you use a recent version of Symfony, it will be enabled by default as long uh as uh Symfony will detect that you are using the worker mode of fun PHP and will also be automatically enabled with Laravel if you install the Octane package. It's uh also supported by many cloud providers including Laravel cloud, clever cloud and platform.sh SH that has official support for front end PHP and this mode if you want to use it. So to enable uh the worker mode of front end PHP basically you just have to write a simple config file it's using the the format of the Kadi the configuration format of the Kadi web server. So you need to specify a worker file that's a PHP script designed to start at the same time of the uh as the web server and to handle the the request with the same running script with both Symfony and Laravel. Basically you need to point uh the file to the worker to the front controller of the application and usually that's all you need to do. the the silus e-commerce platform did some benchmarks to compare PHP FPM with Franken PHP with the with the worker mode. So Sirius is based on Symfony. So it's basically a Symfony application according to them. Uh the uh the response time when using the worker mode is 80% faster. So that means that your conversion rate in e-commerce will be way better and that your uh ranking in search will improve just by enabling this mode. And also according to them uh you can save something like uh 10 like one one uh thousand dollars per month uh on your EC2 bill just by enabling the worker mode because it's way more efficient than the standard mode uh for typical e-commerce website with not that much traffic. So uh of course it's a benchmark so you need to uh try on your own infrastructure with your own code to to to see the performance but there are the performance gains but uh it's way way faster than PHPFP some other features that are available in the tool support for the 103 status code. Um the main idea is to be able to preload the assets needed by the web page. Let's say that you are uh generating an e-commerce page in PHP. To do that, you will usually run a lot of slow SQL queries and do a lot of computations. In this example, this will take uh 200 milliseconds and at the end of that you will generate some HTML page that will be sent to the web browser. The web browser will pass the HTML detect that it needs some extra resources resources in this case a CSS file. then it will download the CSS file 25 millconds and finally it will render the page but us as web developers we know that the client will need the CSS file so that is the main idea of this new status code the web server or the PHP app if it is smart enough can immediately send a temporary and informative response telling the web browser that it will need these assets in this example the command CSS file. So, uh it can do that before doing the hard work, the slow SQL queries in my example. So, uh the web browser will be able to download uh these assets while the server is generating the rest of the HTML. So, in this example, at the end, uh the server will send the the final 20 HTTP response, but the CSS file will already be there. So, the latency will improve a lot. That's cool. That works in NodeJS for instance. But it's not possible to implement that with PHPFPL with PHPFPM because of technical limitations. Uh the fast CGI protocol is not compatible with sending multiple HTTP responses to a single HTTP request. That's not possible. So this is a problem with SPM. with Apache it could be possible when using the the Apache module but it it's very hard to do because we would have to refactor the Apache engine and the Apache module a lot and nobody has has done that so far with Franken PHP because the built-in web server of go support this status code it has been easy to implement and so we have we provide a PHP function called header send and you can just set the headers containing the assets to preload. Call this function. A temporary response will be sent to the web browser. Then uh generate your HTML as usual and a final 20 response will be will be sent to the web browser. So with front PHP you can use this new capability of the HTTP protocol and that's the only PHP engine supporting that. If you are using the Symfony HTTP foundation component, that means if you are using Symfony or Laravel or Drupal or Pressop or something like that, then there is an helper for that directly in this component. And so you have some helper methods to to generate that. If you are not running front PHP, then the the informative 103 response will just be skipped. There is there will no there will be no errors. Another interesting feature is the support for the Mercure protocol. It will be a bit uh hard to go deep into that uh during this talk but you can uh find uh everything in the documentation on the website and there are a lot of videos on YouTube explaining how it works. Basically it allows to your server to push data to the clients and uh the clients will receive in real in real time JavaScript events to update the view. So it allows to create realtime applications and it's built into front end PHP too. You can also if you don't want to use docker package your PHP apps as standalone binaries. That means that you will have a single file containing the web server PHP itself, the extensions that you need, uh the front end PHP sappy, the your PHP code, your assets, uh basically everything that is needed to run your app. To do that, it's quite easy. Install your dependencies in prod mode. Clone the front PHP directory. execute the script that we provide and set an environment variable to uh uh to the path of your PHP code and you get a binary that you can start that will start your application without having to distribute the PHP code and the assets separately. Another interesting feature and let's finish with a brand new feature that we created with Alexander Duba from the symfony core team uh just for this conference actually. Um this brand new feature is a new way to write PHP extensions using only go and without having to write C code. It's still possible of course to write C code but it's not mandatory. The main idea behind that is to be able to use the uh key features of the Go programming languages in your PHP apps and write some let's say performance sensitive uh PHP uh performance sensitive code directly in Go but call it from PHP. So for instance you could use Go routines to uh do task concurrently. you can uh trigger background jobs that will uh execute even after the end of the HTTP request. Another interesting use case is the ability to use all the existing Go libraries including the SDKs that are very popular and very often written in Go in the DevOps world. If you are working with Kubernetes for instance, almost everything is written as Go libraries that you can use. With this new tool, you can use these libraries directly from your PHP your PHP code. Um, this also allows to share data between HTTP request because in go there is uh communication mechanism called the the go channels and you can you can use them to create some kind of uh data communications between your PHP scripts that are running uh in parallel with front PHP. So this has been possible because franken PHP uh is using a thread safe build of PHP. This is required for go routines. So uh we worked with many core contributors of PHP and the foundation to be sure that PHP and Go works very well proper together and all the small bugs that we had in the beginning have been fixed and that's what unlocked uh the ability to write uh PHP extensions using go. Also go some has some technical limitations like you need to compile the modules the extension statically. It's possible because we have all the infrastructure to do that in front PHP already. So, uh actually it was already possible to write PHP extensions directly in Go uh with some C boiler plate code if you were familiar with C and Go. What we have done for today is that we created some new tools that are available in the development version of front PHP to make it possible to write these extensions without having to write the C code by yourself. The C code still exist and is still used but basically it is provided by Franken PHP. So we have a new helper to register the extension. We have tools to convert the internal data structures like the strings of PHP to the internal data structures of Go back and forth. And we have a code generator to generate the boiler plate C code. Here is an example. This is a standard go function that use a go routine to trigger some background job. So uh what it does this function is non is nonblocking. It starts a background job, wait 10 seconds, then logs something. Very easy. Thanks to this specific go directive as a as you can see as a kind of special comment. Uh at the first line, we say that we want to expose this go function as a PHP function having this signature. So as you can see, you can just write pure go. That's quite easy and use any go library in this snipet if you want. Then free to go module use the new uh command line tool that we provide in that we provide in front PHP directly to generate the C code that is necessary to expose this go function to PHP and create a new build of front PHP including your extension and that's all you need to do the function is now available in your PHP code and will delegate to your go code. This code generator has native support for functions, uh, classes, PHP classes. It's strict in Go, but basically it's more or less the same thing. Basic types and strings. We are working on adding support for PHP arrays and objects. The generated code can be edited and announced if you want to do things more advanced. for instance. Uh but to do that you need to know all how to write C code and especially how to use the the C macros provided by by PHP and extensions. Um we also created let's say an example extension to see what you can do with these kind of tools. Uh it's a client for the etc uh key value distributed data store. The official SDK for this tool is written in Go and is very efficient because it allows to have a persistent connection for a wall application using a single connection for all the HTTP request. So we basically wrapped this library as a PHP extension and so you can find this demo extension on GitHub. uh and it showcas all the best practices to write PHP extensions in Go including how to have global objects in Go uh reused by all the HTTP request handled by PHP, how to write tests, how to convert the data structure. So it's quite uh complete examples. I hope that uh it will change the way you write advanced uh PHP applications and that when needed you will be able to delegate to the Go programming language that can be very very useful uh and that many new extensions leveraging the power of the Go programming language will be made available publicly. Thank you. Thank you. This was fascinating. Thanks a lot for that. Wow. you start with like the performance uh improvements and I'm like I'm already sold, right? And then then there's this and the next feature and the next feature and just it keeps coming and I'm like wow this is uh this is quite impressive Kevin. Um yeah, I'd love to ask you a few of the questions. I think there have been a few questions coming in from the audience as well. Um let me maybe start off by just I think something that people I think also brought up in the chat a bit is wonder um does this change like how you develop your application, how you debug your application. I mean obviously if you're building a static binary that contains everything, sure then you can't easily edit anymore, but that's not the default way of going about things, right? Like can you just kind of make it a bit clearer for people like does the debugging process for if you're working on a PHP application change? Yes, if you are using franken PHP on normal PHP application, I mean if you are not using the worker mode, then you can debug it as usual. If you use DD uh in Laravel in Symphfony or if you use XD debug, XD Xdebug is entirely supported. So it will not change anything. Yeah, if you are using the worker mode, it's a bit more complicated um because then you need uh to know if you want to debug the worker itself that will run in background or the code that is handling an HTTP request. But again, you can do that with XD. We are working with Derek to fix some remaining issues uh in worker mode only. It will be done very soon for DD and dump that are popular in Symphfony and Laravel. It's already entirely supported and we fixed some issues with the worker mode very recently. But now you can use the the usual tools. If you are writing um let's say extensions using this new feature in go then uh you can just use the debugging tools providing provided by the go programming language itself and it's how we debug that to to be honest and there is a a debugger called uh that is shipped with the the the standard go distribution and it works out of the box with franken php if you want to debug the the go code if you want to debug the C code if you are really going in the advanced way then you need you need to use the GDB. Yeah, I understand. I think it's I think that's just a good thing for people to kind of understand that it's easy to get started with, right? Because it seems like there's like you like you said like oh there's all these amazing things and I think it's easy to kind of come in and go like oh my god like so many different changes but I think it's really easy to get started and then you can start thinking about okay what else can I make use of and build on top of that. But I mean I was uh I was trying out franken PHP last week because I knew you were coming Kevin and I wanted to have tried it out at least once and uh I know it was just like the like simply just running franken PHP without the worker mode and it just worked and indeed this was local of course and like no absolute benchmarks here but like 25% performance increase just out of nothing. So that's really nice. Yeah, I think that's something I would be fascinated. I mean I think the worker mode that's one thing but like just by itself how does this confer is are there a lot of benchmarks people can find uh is that something that we need like ask help for help with the audience maybe to produce a bit more so um there are a lot of benchmarks available but the thing there is one from the Laravel core team that is available on the Laravel website there is one from selus but the and both benchmarks say that franken php is the fastest engine but the thing is that we optimized a a lot of things since then this benchmark and now it's even faster. My colleague Antoan Biche is working on a new set of benchmarks uh that will be up to date for the series conference. So in the next few weeks there will be uh new benchmarks with upto-date numbers that will be publicly available. Yeah, look forward to that. So there's time for one more question and I I just noticed something on the Discord here. By the way, if you uh if you're watching and you want to pitch in with the Q&A, you can just uh come to Discord. Uh there are a lot of people talking here. We won't be able to answer all questions on streams, but Kevin, you're invited or required to go into Discord after your talk and to take a look at all the questions here. So, they will be answered. Uh but here one Liam is asking uh what does Franken PHP being part of the PHP foundation actually mean like funding for the project? Will it become a default recommendation for running PHP? That's something we wrote down here as well like what what does the future bring for that collaboration between Frank and PHP and the foundation. Okay. So first it's a collaboration between uh Franken PHP the foundation and the caddy team that is very involved in this project too. So it's a third party collaboration and the main idea is to be sure that the project will be maintained and in sync with the PHP engine. So for now the the the main changes is that uh people from the PHP foundation have access to the git repository and if I die they can take back the take the project and maintain it. Actually there are other uh maintainers of front PHP and they were granted access to the new repository too. Uh so that's the the the first main change. The second one is that now the the core PHP developers are also able to directly dive into the the issues and the codebase of front end PHP and often when we have some complex bugs in front PHP we figure out that it's related to issues in the PHP engine itself. So now it's easier to to fix the things directly in the PHP engine because the collaboration is is better. uh and at some point indeed there will be uh there will likely be funding uh to work specifically uh on the on the on on Franken PHP itself regarding the the official status and how to promote that on the website. It's topics that are being discussed but no decision has been made so far. Is that something you'd like to see like Franken PHP as the default way advertise how to install PHP and get started? If you ask me, yes, I would be very proud of that, but I'm not the one that can make this decision. Yeah, I think I mean, you're doing a good job already like familiarizing people with it. And I think that's a big step toward is just people trying it out, working with it, and you know, seeing that it works the the way it's supposed to. Thank you. One more very important question. Uh, will there be a Franken PHP elephant? Simply yes or no? That suffice? Yes, I see you. Yep. Okay, we already we already said that if the GitHub repository uh has 10,000 stars, we are listen to 8,000 we will make an elephant. So So 2,000s more and there will be an elephant with some luck, right? That's later today. Folks, you know what to do. Go to the GitHub repository. Kevin is going into the Discord server to answer all the questions and we are going to our next speaker. Thank you a lot Kevin for being here and for yeah working on Frank and PHP super cool. Thank you. Enjoy the conference. Thank you., FrankenPHP: The Future of PHP? // PHPverse 2025, PHP Annotated, 01jy46kzq5p3r8a4h1ggn10rkn.