Skip to content

Commit 9c85354

Browse files
committed
update readme
1 parent 10bbeb9 commit 9c85354

File tree

1 file changed

+16
-50
lines changed

1 file changed

+16
-50
lines changed

README.md

Lines changed: 16 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -79,71 +79,37 @@ The create your React Http server
7979
```php
8080
#!/usr/bin/env php
8181
<?php
82-
// public/index.php or everywhere you want to allocate your server
8382

8483
declare(strict_types=1);
8584

8685
use Antidot\Application\Http\Application;
87-
use Antidot\React\PromiseResponse;
88-
use Laminas\Diactoros\Response\HtmlResponse;
89-
use Psr\Http\Message\ServerRequestInterface;
90-
use Ramsey\Uuid\Uuid;
91-
use React\EventLoop\Factory;
92-
use React\Http\Middleware\LimitConcurrentRequestsMiddleware;
93-
use React\Http\Middleware\RequestBodyBufferMiddleware;
94-
use React\Http\Middleware\RequestBodyParserMiddleware;
95-
use React\Http\Middleware\StreamingRequestMiddleware;
86+
use Antidot\React\Child;
87+
use Psr\Log\LoggerInterface;
88+
use React\EventLoop\LoopInterface;
9689
use React\Http\Server;
9790
use React\Socket\Server as Socket;
98-
use function React\Promise\resolve;
9991

10092
require 'vendor/autoload.php';
10193

10294
call_user_func(static function () {
103-
$loop = Factory::create();
10495
$container = require 'config/container.php';
10596
$application = $container->get(Application::class);
10697
(require 'router/middleware.php')($application, $container);
10798
(require 'router/routes.php')($application, $container);
10899

109-
$server = new Server(
110-
$loop,
111-
new StreamingRequestMiddleware(),
112-
new LimitConcurrentRequestsMiddleware(100), // 100 concurrent buffering handlers
113-
new RequestBodyBufferMiddleware(4 * 1024 * 1024), // 4 MiB
114-
new RequestBodyParserMiddleware(),
115-
static function (ServerRequestInterface $request) use ($application) {
116-
try {
117-
$response = new PromiseResponse(
118-
resolve($request)
119-
->then(static fn ($request) => $request->withAttribute('request_id', Uuid::uuid4()->toString()))
120-
->then(static fn ($request) => $application->handle($request))
121-
);
122-
} catch (Throwable $exception) {
123-
if (!empty($e = $exception->getPrevious())) {
124-
$exception = $e;
125-
}
126-
127-
$response = new HtmlResponse(
128-
sprintf(
129-
'%s in file %s in line %s.',
130-
$exception->getMessage(),
131-
$exception->getFile(),
132-
$exception->getLine()
133-
)
134-
);
135-
}
136-
137-
return resolve($response);
138-
}
139-
);
140-
141-
$server->on('error', function ($err) {
142-
dump($err);
143-
});
144-
145-
$socket = new Socket('0.0.0.0:8080', $loop);
146-
$server->listen($socket);
100+
$loop = $container->get(LoopInterface::class);
101+
Child::fork(
102+
shell_exec('nproc') ? (int)shell_exec('nproc') : 16,
103+
static function () use ($container) {
104+
$server = $container->get(Server::class);
105+
$server->on('error', static function ($err) use ($container) {
106+
$logger = $container->get(LoggerInterface::class);
107+
$logger->critical($err);
108+
});
109+
110+
$socket = $container->get(Socket::class);
111+
$server->listen($socket);
112+
});
147113

148114
$loop->run();
149115
});

0 commit comments

Comments
 (0)