Skip to content

Commit 58e0b75

Browse files
committed
funtional POC
1 parent e821328 commit 58e0b75

File tree

5 files changed

+29
-17
lines changed

5 files changed

+29
-17
lines changed

config/services/dependencies.prod.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,6 @@ parameters:
2626
options:
2727
stream: 'var/log/%date%-default.log'
2828
level: 400
29+
server:
30+
max_concurrency: 2048
31+
workers: 16

public/index.php

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
declare(strict_types=1);
55

66
use Antidot\Application\Http\Application;
7+
use Antidot\React\Child;
78
use Psr\Log\LoggerInterface;
89
use React\EventLoop\LoopInterface;
910
use React\Http\Server;
@@ -18,15 +19,18 @@
1819
(require 'router/routes.php')($application, $container);
1920

2021
$loop = $container->get(LoopInterface::class);
21-
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);
26-
});
27-
28-
$socket = $container->get(Socket::class);
29-
$server->listen($socket);
22+
Child::fork(
23+
shell_exec('nproc') ? (int)shell_exec('nproc') : 16,
24+
static function () use ($container) {
25+
$server = $container->get(Server::class);
26+
$server->on('error', static function ($err) use ($container) {
27+
$logger = $container->get(LoggerInterface::class);
28+
$logger->critical($err);
29+
});
30+
31+
$socket = $container->get(Socket::class);
32+
$server->listen($socket);
33+
});
3034

3135
$loop->run();
3236
});

router/middleware.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
return static function (Application $app): void {
1313
$app->pipe(ErrorMiddleware::class);
14-
$app->pipe(ExceptionLoggerMiddleware::class);
15-
$app->pipe(RequestLoggerMiddleware::class);
14+
// $app->pipe(ExceptionLoggerMiddleware::class);
15+
// $app->pipe(RequestLoggerMiddleware::class);
1616
$app->pipe(RouteDispatcherMiddleware::class);
1717
$app->pipe(RouteNotFoundMiddleware::class);
1818
};

src/Application/EventListener/SomeEventListener.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use React\Promise\FulfilledPromise;
1111
use React\Promise\PromiseInterface;
1212
use function get_class;
13+
use function React\Promise\resolve;
1314
use function sprintf;
1415

1516
class SomeEventListener
@@ -24,9 +25,7 @@ public function __construct(LoggerInterface $logger)
2425

2526
public function __invoke(SomeEvent $event): PromiseInterface
2627
{
27-
$promise = new FulfilledPromise($event);
28-
29-
return $promise->then(function (SomeEvent $event) {
28+
return resolve($event)->then(function (SomeEvent $event) {
3029
$this->logger->debug(sprintf('Event `%s` captured.', get_class($event)));
3130
});
3231
}

src/Application/Http/Middleware/HelloWorld.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,24 @@
44

55
namespace App\Application\Http\Middleware;
66

7+
use Antidot\React\PromiseResponse;
78
use Psr\Http\Message\ResponseInterface;
89
use Psr\Http\Message\ServerRequestInterface;
910
use Psr\Http\Server\MiddlewareInterface;
1011
use Psr\Http\Server\RequestHandlerInterface;
12+
use function React\Promise\resolve;
1113

1214
class HelloWorld implements MiddlewareInterface
1315
{
1416
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
1517
{
16-
$greet = $request->getQueryParams()['greet'] ?? 'World';
17-
$request = $request->withAttribute('greet', $greet);
18+
return new PromiseResponse(resolve($request)->then(
19+
function (ServerRequestInterface $request) use ($handler): ResponseInterface {
20+
$greet = $request->getQueryParams()['greet'] ?? 'World';
21+
$request = $request->withAttribute('greet', $greet);
1822

19-
return $handler->handle($request);
23+
return $handler->handle($request);
24+
}
25+
));
2026
}
2127
}

0 commit comments

Comments
 (0)