Completed
Push — master ( 41114a...720d3e )
by Walter
82:03 queued 57:19
created

DailyStream   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 92.31%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 1
dl 0
loc 26
ccs 12
cts 13
cp 0.9231
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 14 1
A getStream() 0 8 2
1
<?php
2
/**
3
 * Polder Knowledge / log-module (https://polderknowledge.com)
4
 *
5
 * @link https://github.com/polderknowledge/log-module for the canonical source repository
6
 * @copyright Copyright (c) 2016-2017 Polder Knowledge (https://polderknowledge.com)
7
 * @license https://github.com/polderknowledge/log-module/blob/master/LICENSE.md MIT
8
 */
9
10
namespace PolderKnowledge\LogModule\Monolog\Handler\Factory;
11
12
use Monolog\Handler\StreamHandler;
13
use Monolog\Logger;
14
use WShafer\PSR11MonoLog\FactoryInterface;
15
16
final class DailyStream implements FactoryInterface
17
{
18 3
    public function __invoke(array $options)
19
    {
20 3
        $stream = $this->getStream(
21 3
            $options['stream'] ?? null,
22 3
            $options['dateFormat'] ?? 'Ymd'
23
        );
24
25 3
        $level = (int)($options['level'] ?? Logger::DEBUG);
26 3
        $bubble = (boolean)($options['bubble'] ?? true);
27 3
        $filePermission = (int)($options['filePermission'] ?? 0644);
28 3
        $useLocking = (boolean)($options['useLocking'] ?? true);
29
30 3
        return new StreamHandler($stream, $level, $bubble, $filePermission, $useLocking);
31
    }
32
33 3
    protected function getStream($stream, $dateFormat)
34
    {
35 3
        if (is_resource($stream)) {
36
            return $stream;
37
        }
38
39 3
        return sprintf((string)$stream, date($dateFormat));
40
    }
41
}
42