FirebaseLogs::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
declare(strict_types = 1);
3
4
namespace Zend\Firebase;
5
6
use Monolog\Logger;
7
use Monolog\Handler\StreamHandler;
8
use Monolog\Handler\FirePHPHandler;
9
use Monolog\Formatter\LineFormatter;
10
11
/**
12
 * PHP7 FIREBASE LIBRARY (http://samuelventimiglia.it/)
13
 *
14
 *
15
 * @link https://github.com/samuel20miglia/zend_Firebase
16
 * @copyright Copyright (c) 2016-now Ventimiglia Samuel - Biasin Davide
17
 * @license BSD 3-Clause License
18
 *
19
 */
20
21
22
/**
23
 * @author sviluppo
24
 *
25
 */
26
class FirebaseLogs
27
{
28
29
    /**
30
     *
31
     * @var Logger
32
     */
33
    private $logger;
34
35
    /**
36
     *
37
     * @var string
38
     */
39
    private $folderToStoreLog;
40
41
    /**
42
     * Format of datetime of logs
43
     *
44
     * @var string $dateFormatLog
45
     */
46
    private $dateFormatLog = "Y n j, g:i a";
47
48
    /**
49
     * DateTime of log filename
50
     *
51
     * @var string $dateFormatLogFilename
52
     */
53
    private static $dateFormatLogFilename;
54
55
    /**
56
     *
57
     * @param string $folderToStoreLog
58
     */
59
    public function __construct(string $folderToStoreLog)
60
    {
61
        $this->folderToStoreLog = $folderToStoreLog;
62
63
        $this->createLogger($folderToStoreLog);
64
    }
65
66
    /**
67
     * Write log of current event
68
     *
69
     * @param Logger $logger
0 ignored issues
show
Bug introduced by
There is no parameter named $logger. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
70
     * @param array $eventData
71
     * @param mixed $event
72
     * @param string $path
73
     */
74
    public function writeEventLogs($eventData, $event, $path)
75
    {
76
        if (! empty($eventData) || null != $eventData) {
77
            $this->logger->addDebug("path: {$path}", [
78
                'DATA' => $eventData,
79
                'EVENT TYPE' => $event->getEventType()
80
            ]);
81
        } else {
82
            $this->logger->addDebug("path: {$path}", [
83
                'EVENT TYPE' => $event->getEventType()
84
            ]);
85
        }
86
    }
87
88
    /**
89
     *
90
     * Create logger instance for save stream log
91
     *
92
     * @param string $folderToStoreLog
93
     * @return Logger $logger
94
     */
95
    private function createLogger($folderToStoreLog)
96
    {
97
        // the default output format is "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"
98
        $output = "%datetime% > %level_name% > %message% %context% %extra%\n";
99
        // finally, create a formatter
100
        $formatter = new LineFormatter($output, $this->dateFormatLog);
101
        $this->dateFormatLogFilename = date("Y-m-d_H:i:s");
102
        // Create the logger
103
        $this->logger = new Logger('stream_logger');
104
105
        // Now add some handlers
106
        $stream = new StreamHandler(trim($folderToStoreLog) . $this->dateFormatLogFilename . ".log", Logger::DEBUG);
107
108
        $stream->setFormatter($formatter);
109
        $this->logger->pushHandler($stream);
110
        $this->logger->pushHandler(new FirePHPHandler());
111
112
        // You can now use your logger
113
        $this->logger->addInfo('Stream logger is ready...');
114
        return $this->logger;
115
    }
116
}
117