diff --git a/psalm.baseline.xml b/psalm.baseline.xml
index 9a76f43..0d3326a 100644
--- a/psalm.baseline.xml
+++ b/psalm.baseline.xml
@@ -12,15 +12,7 @@
- kernel->handle($sfRequest);
-
- $sfResponse->send();
- })]]>
+
diff --git a/src/frankenphp-symfony/src/Runner.php b/src/frankenphp-symfony/src/Runner.php
index aabf279..0de2c89 100644
--- a/src/frankenphp-symfony/src/Runner.php
+++ b/src/frankenphp-symfony/src/Runner.php
@@ -22,22 +22,25 @@ public function __construct(private HttpKernelInterface $kernel)
public function run(): int
{
+ $kernel = $this->kernel;
$server = array_filter($_SERVER, static fn (string $key) => !str_starts_with($key, 'HTTP_'), ARRAY_FILTER_USE_KEY);
$server['APP_RUNTIME_MODE'] = 'web=1&worker=1';
- do {
- $ret = \frankenphp_handle_request(function () use ($server, &$sfRequest, &$sfResponse): void {
- // Merge the environment variables coming from DotEnv with the ones tight to the current request
- $_SERVER += $server;
+ $handler = static function () use ($kernel, $server, &$sfRequest, &$sfResponse): void {
+ // Merge the environment variables coming from DotEnv with the ones tied to the current request
+ $_SERVER += $server;
+
+ $sfRequest = Request::createFromGlobals();
+ $sfResponse = $kernel->handle($sfRequest);
- $sfRequest = Request::createFromGlobals();
- $sfResponse = $this->kernel->handle($sfRequest);
+ $sfResponse->send();
+ };
- $sfResponse->send();
- });
+ do {
+ $ret = \frankenphp_handle_request($handler);
- if ($this->kernel instanceof TerminableInterface && $sfRequest && $sfResponse) {
- $this->kernel->terminate($sfRequest, $sfResponse);
+ if ($kernel instanceof TerminableInterface && $sfRequest && $sfResponse) {
+ $kernel->terminate($sfRequest, $sfResponse);
}
gc_collect_cycles();