SocketHandlerFactory::__invoke()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 25

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 16
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 25
ccs 16
cts 16
cp 1
rs 9.52
c 0
b 0
f 0
cc 3
nc 4
nop 1
crap 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace WShafer\PSR11MonoLog\Handler;
6
7
use Monolog\Handler\SocketHandler;
8
use Monolog\Logger;
9
use WShafer\PSR11MonoLog\FactoryInterface;
10
11
class SocketHandlerFactory implements FactoryInterface
12
{
13 1
    public function __invoke(array $options)
14
    {
15 1
        $connectionString  = (string)  ($options['connectionString'] ?? '');
16 1
        $timeout           = (float)   ($options['timeout']          ?? ini_get('default_socket_timeout'));
17 1
        $writeTimeout      = (int)     ($options['writeTimeout']     ?? ini_get('default_socket_timeout'));
18 1
        $level             = (int)     ($options['level']            ?? Logger::DEBUG);
19 1
        $bubble            = (bool) ($options['bubble']           ?? true);
20
21 1
        $handler = new SocketHandler(
22 1
            $connectionString,
23 1
            $level,
24 1
            $bubble
25
        );
26
27 1
        if (!empty($timeout)) {
28 1
            $handler->setConnectionTimeout($timeout);
29
        }
30
31 1
        if (!empty($writeTimeout)) {
32 1
            $handler->setTimeout($writeTimeout);
33 1
            $handler->setWritingTimeout($writeTimeout);
34
        }
35
36 1
        return $handler;
37
    }
38
}
39