Passed
Push — master ( 1448ca...20eafa )
by Adrien
07:45
created

LoggerFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Test Coverage

Coverage 41.67%

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 32
ccs 5
cts 12
cp 0.4167
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 18 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Application\Log;
6
7
use Application\Model\Log;
8
use Doctrine\ORM\EntityManager;
9
use Interop\Container\ContainerInterface;
10
use Zend\Log\Logger;
11
use Zend\Log\Writer\Stream;
12
use Zend\ServiceManager\Factory\FactoryInterface;
13
14
class LoggerFactory implements FactoryInterface
15
{
16
    /**
17
     * @var Logger
18
     */
19
    private $logger;
20
21
    /**
22
     * @param ContainerInterface $container
23
     * @param string $requestedName
24
     * @param null|array $options
25
     *
26
     * @return Logger
27
     */
28 2
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
29
    {
30 2
        if (!$this->logger) {
31
            // Log to file
32 1
            $this->logger = new Logger();
33 1
            $fileWriter = new Stream('logs/all.log');
34
            $this->logger->addWriter($fileWriter);
35
36
            $logRepository = $container->get(EntityManager::class)->getRepository(Log::class);
37
            $config = $container->get('config');
38
            $baseUrl = 'https://' . $config['hostname'];
39
40
            $dbWriter = new DbWriter($logRepository, $baseUrl);
41
            $dbWriter->addFilter(Logger::INFO);
42
            $this->logger->addWriter($dbWriter);
43
        }
44
45 1
        return $this->logger;
46
    }
47
}
48