diff --git a/README.md b/README.md index 1890460..a6721d7 100644 --- a/README.md +++ b/README.md @@ -79,71 +79,37 @@ The create your React Http server ```php #!/usr/bin/env php get(Application::class); (require 'router/middleware.php')($application, $container); (require 'router/routes.php')($application, $container); - $server = new Server( - $loop, - new StreamingRequestMiddleware(), - new LimitConcurrentRequestsMiddleware(100), // 100 concurrent buffering handlers - new RequestBodyBufferMiddleware(4 * 1024 * 1024), // 4 MiB - new RequestBodyParserMiddleware(), - static function (ServerRequestInterface $request) use ($application) { - try { - $response = new PromiseResponse( - resolve($request) - ->then(static fn ($request) => $request->withAttribute('request_id', Uuid::uuid4()->toString())) - ->then(static fn ($request) => $application->handle($request)) - ); - } catch (Throwable $exception) { - if (!empty($e = $exception->getPrevious())) { - $exception = $e; - } - - $response = new HtmlResponse( - sprintf( - '%s in file %s in line %s.', - $exception->getMessage(), - $exception->getFile(), - $exception->getLine() - ) - ); - } - - return resolve($response); - } - ); - - $server->on('error', function ($err) { - dump($err); - }); - - $socket = new Socket('0.0.0.0:8080', $loop); - $server->listen($socket); + $loop = $container->get(LoopInterface::class); + Child::fork( + shell_exec('nproc') ? (int)shell_exec('nproc') : 16, + static function () use ($container) { + $server = $container->get(Server::class); + $server->on('error', static function ($err) use ($container) { + $logger = $container->get(LoggerInterface::class); + $logger->critical($err); + }); + + $socket = $container->get(Socket::class); + $server->listen($socket); + }); $loop->run(); });