Passed
Pull Request — 2.x.x (#12)
by Koldo
15:21 queued 12:52
created

RunServerCommandFactory::__invoke()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 27
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 19
c 1
b 0
f 1
dl 0
loc 27
ccs 0
cts 20
cp 0
rs 9.6333
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Antidot\React;
6
7
use Drift\Server\Console\RunServerCommand;
8
use Psr\Container\ContainerInterface;
9
use Symfony\Component\Console\Input\InputArgument;
10
11
class RunServerCommandFactory
12
{
13
    public function __invoke(ContainerInterface $container): RunServerCommand
14
    {
15
        /** @var array<string, array> $globalConfig */
16
        $globalConfig = $container->get('config');
17
        /** @var array<string, string|int> $config */
18
        $config = $globalConfig['server'];
19
20
        $command = new RunServerCommand(dirname('./'), 'server:run');
21
        $command->setDescription('Run Drift HTTP Server');
22
        $definition = $command->getDefinition();
23
24
        $path = new InputArgument('path', InputArgument::OPTIONAL, $definition->getArgument('path')->getDescription());
25
        $path->setDefault(sprintf('%s:%s', $config['host'], $config['port']));
26
        $definition->setArguments([$path]);
27
28
        $adapter = $definition->getOption('adapter');
29
        $adapter->setDefault(DriftKernelAdapter::class);
30
        $staticFolder = $definition->getOption('static-folder');
31
        $staticFolder->setDefault($config['static_folder']);
32
        $workers = $definition->getOption('workers');
33
        $workers->setDefault($config['workers']);
34
        $concurrentRequests = $definition->getOption('concurrent-requests');
35
        $concurrentRequests->setDefault($config['max_concurrency']);
36
        $bufferSize = $definition->getOption('request-body-buffer');
37
        $bufferSize->setDefault($config['buffer_size']);
38
39
        return $command;
40
    }
41
}
42