|
4 | 4 | declare(strict_types=1); |
5 | 5 |
|
6 | 6 | use Antidot\Application\Http\Application; |
7 | | -use Antidot\React\PromiseResponse; |
8 | | -use Laminas\Diactoros\Response\HtmlResponse; |
9 | | -use Psr\Http\Message\ServerRequestInterface; |
10 | | -use Ramsey\Uuid\Uuid; |
11 | | -use React\EventLoop\Factory; |
12 | | -use React\Http\Middleware\LimitConcurrentRequestsMiddleware; |
13 | | -use React\Http\Middleware\RequestBodyBufferMiddleware; |
14 | | -use React\Http\Middleware\RequestBodyParserMiddleware; |
15 | | -use React\Http\Middleware\StreamingRequestMiddleware; |
| 7 | +use Psr\Log\LoggerInterface; |
| 8 | +use React\EventLoop\LoopInterface; |
16 | 9 | use React\Http\Server; |
17 | 10 | use React\Socket\Server as Socket; |
18 | | -use function React\Promise\resolve; |
19 | 11 |
|
20 | 12 | require 'vendor/autoload.php'; |
21 | 13 |
|
22 | 14 | call_user_func(static function () { |
23 | | - $loop = Factory::create(); |
24 | 15 | $container = require 'config/container.php'; |
25 | 16 | $application = $container->get(Application::class); |
26 | 17 | (require 'router/middleware.php')($application, $container); |
27 | 18 | (require 'router/routes.php')($application, $container); |
28 | 19 |
|
29 | | - $server = new Server( |
30 | | - $loop, |
31 | | - new StreamingRequestMiddleware(), |
32 | | - new LimitConcurrentRequestsMiddleware(100), // 100 concurrent buffering handlers |
33 | | - new RequestBodyBufferMiddleware(4 * 1024 * 1024), // 4 MiB |
34 | | - new RequestBodyParserMiddleware(), |
35 | | - static function (ServerRequestInterface $request) use ($application) { |
36 | | - try { |
37 | | - $response = new PromiseResponse( |
38 | | - resolve($request) |
39 | | - ->then(static fn ($request) => $request->withAttribute('request_id', Uuid::uuid4()->toString())) |
40 | | - ->then(static fn ($request) => $application->handle($request)) |
41 | | - ); |
42 | | - } catch (Throwable $exception) { |
43 | | - if (!empty($e = $exception->getPrevious())) { |
44 | | - $exception = $e; |
45 | | - } |
| 20 | + $loop = $container->get(LoopInterface::class); |
46 | 21 |
|
47 | | - $response = new HtmlResponse( |
48 | | - sprintf( |
49 | | - '%s in file %s in line %s.', |
50 | | - $exception->getMessage(), |
51 | | - $exception->getFile(), |
52 | | - $exception->getLine() |
53 | | - ) |
54 | | - ); |
55 | | - } |
56 | | - |
57 | | - return resolve($response); |
58 | | - } |
59 | | - ); |
60 | | - |
61 | | - $server->on('error', function ($err) { |
62 | | - dump($err); |
| 22 | + $server = $container->get(Server::class); |
| 23 | + $server->on('error', static function ($err) use ($container) { |
| 24 | + $logger = $container->get(LoggerInterface::class); |
| 25 | + $logger->critical($err); |
63 | 26 | }); |
64 | 27 |
|
65 | | - $socket = new Socket('0.0.0.0:8080', $loop); |
| 28 | + $socket = $container->get(Socket::class); |
66 | 29 | $server->listen($socket); |
67 | 30 |
|
68 | 31 | $loop->run(); |
|
0 commit comments