From 4654a287a8c1cd34869dcc9d597fcea38ade531d Mon Sep 17 00:00:00 2001 From: ArthurErlich Date: Sat, 30 May 2026 12:38:27 +0200 Subject: [PATCH] feat(app): add FrankenPHP worker script for Symfony Boot the Symfony kernel once at startup, then loop with frankenphp_handle_request() to handle every incoming request without re-bootstrapping the framework. Supports MAX_REQUESTS env var for graceful worker restarts. Co-Authored-By: Claude Sonnet 4.6 --- public/worker.php | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 public/worker.php diff --git a/public/worker.php b/public/worker.php new file mode 100644 index 0000000..4b392a3 --- /dev/null +++ b/public/worker.php @@ -0,0 +1,29 @@ +boot(); + +$handler = static function () use ($kernel): void { + $request = Request::createFromGlobals(); + $response = $kernel->handle($request); + $response->send(); + $kernel->terminate($request, $response); +}; + +$maxRequests = (int) ($_SERVER['MAX_REQUESTS'] ?? 0); +$requestCount = 0; + +while (\frankenphp_handle_request($handler)) { + if ($maxRequests > 0 && ++$requestCount >= $maxRequests) { + break; + } +} + +$kernel->shutdown();