systemDirectory . '/Boot.php'; // One-time boot - loads autoloader, environment, helpers, etc. $app = Boot::bootWorker($paths); // Prevent worker termination on client disconnect ignore_user_abort(true); /** @var WorkerMode $workerConfig */ $workerConfig = config('WorkerMode'); /* *--------------------------------------------------------------- * REQUEST HANDLER *--------------------------------------------------------------- */ $handler = static function () use ($app, $workerConfig) { // Reconnect database connections before handling request DatabaseConfig::reconnectForWorkerMode(); // Reconnect cache connection before handling request Services::reconnectCacheForWorkerMode(); // Reset request-specific state $app->resetForWorkerMode(); // Update superglobals with fresh request data service('superglobals') ->setServerArray($_SERVER) ->setGetArray($_GET) ->setPostArray($_POST) ->setCookieArray($_COOKIE) ->setFilesArray($_FILES) ->setRequestArray($_REQUEST); try { $app->run(); } catch (Throwable $e) { Services::exceptions()->exceptionHandler($e); } if ($workerConfig->forceGarbageCollection) { // Force garbage collection gc_collect_cycles(); } }; /* *--------------------------------------------------------------- * WORKER REQUEST LOOP *--------------------------------------------------------------- */ while (frankenphp_handle_request($handler)) { // Close session if (Services::has('session')) { Services::session()->close(); } // Cleanup connections with uncommitted transactions DatabaseConfig::cleanupForWorkerMode(); // Reset factories Factories::reset(); // Reset services except persistent ones Services::resetForWorkerMode($workerConfig); if (CI_DEBUG) { Events::cleanupForWorkerMode(); Services::toolbar()->reset(); } }