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

DailyStream::__invoke()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 9
cts 9
cp 1
rs 9.7998
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
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