<?php
declare(strict_types=1);
require __DIR__.'/../php/Kernel.php';
$kernel = new Kernel();
if (getenv('FP_MODE') !== 'worker') { $kernel->handle(); return; }
if (!function_exists('frankenphp_handle_request')) throw new RuntimeException('Worker mode requires FrankenPHP');
$maxRequests = max(1, (int)(getenv('MAX_REQUESTS') ?: 1000));
$handler = static function () use ($kernel): void { $kernel->handle(); };
for ($i = 0; $i < $maxRequests; ++$i) {
    $keepRunning = frankenphp_handle_request($handler);
    gc_collect_cycles();
    if (!$keepRunning) break;
}
unset($kernel);
