Celebrating 30 Years of PHP: Highlights from Jetbrains PHPVerse 2025

This year I (virtually) attended Jetbrains PHPVerse 2025 celebrating 30 years of PHP. I have written about two sessions which most interested me.
30 Years of PHP
To celebrate 30 years of PHP, Jetbrains brought together a number of speakers to talk about PHP’s past successes and the future of the modern PHP ecosystem.
The full set of videos are available: https://lp.jetbrains.com/phpverse-2025/ https://www.youtube.com/playlist?list=PL0bgkxUS9EaI6rjDdRvihJn90OztDsxTO
In this blog I will talk about two of the talks that I found most interesting, FrankenPHP and MCP in PHP.
FrankenPHP: The future of PHP?

This talk was presented by Kévin Dunglas and gave an overview of FrankenPHP, a modern high-performance PHP Application server. The talk can be viewed here: https://www.youtube.com/watch?v=k-UwH91XnAo
Historically PHP applications have been run using NGINX+PHP-FPM or apache+mod_php. These integrate well into modern webserver’s however the PHP ecosystem has been lacking a “first class” application server.
This is where FrankenPHP comes in, with some added bonuses too.
FrankenPHP integrates the entire PHP engine as a module in GO allowing for considerably faster performance. Alongside this it bundles Caddy, allowing you to easily integrate PHP and the webserver to your app. Since these are both native Go projects they are able to work in tandem using Goroutines and channels to communicate.
In addition to being fast, deployment of FrankenPHP is easy. A docker project is available to bundle whatever your project needs. This allows each project to run with it’s own PHP version and not contaminate your global packages.
Worker mode – Making your PHP even faster
FrankenPHP enables loading your application into memory and then continually serving requests without reloading. This differs from standard PHP-CGI processes repeatedly loading your application and state as requests are made.
This works by utilising goroutines and channels to communicate across the various processes. Each goroutine will serve many requests over it’s lifetime. This is achieved by keeping the global application state in memory but resetting it each time it serves a request.
This can be enabled by specifying a worker file which will be loaded by the webserver and handle requests. This is natively supported by Symfony, Laravel, platform.sh, and numerous other libraries.
Go Extensions in PHP?!
As FrankenPHP integrates PHP using Go, this enables an exciting ability to integrate Go into PHP. Native Go code can be added to create high performance extensions natively callable by your PHP. This also enables you to integrate existing go libraries into PHP.
These Go extensions can run concurrently and share data between requests, allowing for further performance improvements by delegating some of the PHP work to Go.
Summary
As part of the 30 year PHP celebrations the PHP foundation announced that FrankenPHP was being officially adopted. To me this makes it clear that the PHP foundation sees this as the future webserver of modern PHP. The ability to integrate Goroutines into PHP directly will enable further performance improvements over the already impressive speed boost Go provides.
MCP in PHP
This talk was given by Marcel Pociot and he gave an overview of the MCP is and how it could be built using PHP. The talk can be viewed here: https://www.youtube.com/watch?v=T22_rXew72M
First he explained that MCP stands for:
- Model – Any sort of generational model, video, audio, etc, But typically LLM’s
- Context – Most generational models cannot perform complex queries without some form of added context. In MCP frameworks Tools, Resources, Prompts, and Sampling are all available context options
- Protocol – This defines the way for a generational model to make requests and receive the results. Typically these are stdio, Server-Sent events (SSE), or Websockets

A MCP client acts as a middle-man between LLM’s or AI models and various MCP servers. These allow generational models to offer a lot smarter functionality.
With the PHP MCP SDK you can build a MCP Server application allowing you to integrate with standard AI assistants such as Claude, Cursor, and ChatGPT.

By integrating with this framework you can expose native PHP to a model and use it to perform complex actions. This can allow you to make your application “AI-ready” by offering a standard MCP server entrypoint allowing you to supercharge your apps usefulness.
Summary
I think it’s very likely that more systems will offer integrations as MCP servers. This could then become the the primary way people interact with services. This would eliminate the traditional “front-end” to services allowing bespoke integration. Instead users would end up going through a generational model to access and perform actions on your service.
This will enable building more smart AI agents on top of traditional API’s allowing automation of work or service requests.
Overview of Jetbrains PHPVerse 2025
In the last few years PHP has revolutionised language development with it’s continued performance boosts, improvements to the standard library and developer experience. It’s recent move towards a JIT compiled runtime, the ability to strongly type it, and mature frameworks show it’s come a long way in 30 years. It’s moved from a simple way to a host personal homepages to scaling to billions of page visits.
With projects like FrankenPHP reimagining how it you run PHP it’s highly likely the language will continue to innovate for another 30 years. I wonder what it will look like then…