Completed
Push — master ( af77e8...7d9d07 )
by Zack
11s
created

Logger::debug()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 4
ccs 0
cts 3
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 12 and the first side effect is on line 6.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
2
namespace GV;
3
4
/** If this file is called directly, abort. */
5
if ( ! defined( 'GRAVITYVIEW_DIR' ) ) {
6
	die();
7
}
8
9
/**
10
 * Describes log levels.
11
 */
12
class LogLevel {
13
    const EMERGENCY = 'emergency';
14
    const ALERT     = 'alert';
15
    const CRITICAL  = 'critical';
16
    const ERROR     = 'error';
17
    const WARNING   = 'warning';
18
    const NOTICE    = 'notice';
19
    const INFO      = 'info';
20
    const DEBUG     = 'debug';
21
}
22
23
/**
24
 * The \GV\Logger abstract class.
25
 *
26
 * Provides logging facilities in line with PSR-3 Standard.
27
 * @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
28
 * @see https://github.com/php-fig/log/blob/master/Psr/Log/AbstractLogger.php
29
 */
30
abstract class Logger /** @todo extends Psr\Log\AbstractLogger */ {
31
    /**
32
     * System is unusable.
33
     *
34
     * @param string $message
35
     * @param array  $context
36
     *
37
     * @return void
38
     */
39
    public function emergency($message, array $context = array())
40
    {
41
        $this->log(LogLevel::EMERGENCY, $message, $context);
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
Coding Style introduced by
Expected 1 spaces before closing bracket; 0 found
Loading history...
42
    }
43
44
    /**
45
     * Action must be taken immediately.
46
     *
47
     * Example: Entire website down, database unavailable, etc. This should
48
     * trigger the SMS alerts and wake you up.
49
     *
50
     * @param string $message
51
     * @param array  $context
52
     *
53
     * @return void
54
     */
55
    public function alert($message, array $context = array())
56
    {
57
        $this->log(LogLevel::ALERT, $message, $context);
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
Coding Style introduced by
Expected 1 spaces before closing bracket; 0 found
Loading history...
58
    }
59
60
    /**
61
     * Critical conditions.
62
     *
63
     * Example: Application component unavailable, unexpected exception.
64
     *
65
     * @param string $message
66
     * @param array  $context
67
     *
68
     * @return void
69
     */
70
    public function critical($message, array $context = array())
71
    {
72
        $this->log(LogLevel::CRITICAL, $message, $context);
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
Coding Style introduced by
Expected 1 spaces before closing bracket; 0 found
Loading history...
73
    }
74
75
    /**
76
     * Runtime errors that do not require immediate action but should typically
77
     * be logged and monitored.
78
     *
79
     * @param string $message
80
     * @param array  $context
81
     *
82
     * @return void
83
     */
84
    public function error($message, array $context = array())
85
    {
86
        $this->log(LogLevel::ERROR, $message, $context);
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
Coding Style introduced by
Expected 1 spaces before closing bracket; 0 found
Loading history...
87
    }
88
89
    /**
90
     * Exceptional occurrences that are not errors.
91
     *
92
     * Example: Use of deprecated APIs, poor use of an API, undesirable things
93
     * that are not necessarily wrong.
94
     *
95
     * @param string $message
96
     * @param array  $context
97
     *
98
     * @return void
99
     */
100
    public function warning($message, array $context = array())
101
    {
102
        $this->log(LogLevel::WARNING, $message, $context);
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
Coding Style introduced by
Expected 1 spaces before closing bracket; 0 found
Loading history...
103
    }
104
105
    /**
106
     * Normal but significant events.
107
     *
108
     * @param string $message
109
     * @param array  $context
110
     *
111
     * @return void
112
     */
113
    public function notice($message, array $context = array())
114
    {
115
        $this->log(LogLevel::NOTICE, $message, $context);
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
Coding Style introduced by
Expected 1 spaces before closing bracket; 0 found
Loading history...
116
    }
117
118
    /**
119
     * Interesting events.
120
     *
121
     * Example: User logs in, SQL logs.
122
     *
123
     * @param string $message
124
     * @param array  $context
125
     *
126
     * @return void
127
     */
128
    public function info($message, array $context = array())
129
    {
130
        $this->log(LogLevel::INFO, $message, $context);
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
Coding Style introduced by
Expected 1 spaces before closing bracket; 0 found
Loading history...
131
    }
132
133
    /**
134
     * Detailed debug information.
135
     *
136
     * @param string $message
137
     * @param array  $context
138
     *
139
     * @return void
140
     */
141
    public function debug($message, array $context = array())
142
    {
143
        $this->log(LogLevel::DEBUG, $message, $context);
0 ignored issues
show
Coding Style introduced by
Expected 1 spaces after opening bracket; 0 found
Loading history...
Coding Style introduced by
Expected 1 spaces before closing bracket; 0 found
Loading history...
144
    }
145
146
	/**
147
	 * Bake the context into { } placeholders in the message.
148
     * @param string $message
149
     * @param array  $context
150
     *
151
     * @return string The baked message;
152
	 */
153
	protected function interpolate( $message, $context ) {
154
		foreach ( $context as $key => $val ) {
155
			if ( strpos( $message, "{{$key}}" ) !== false ) {
0 ignored issues
show
introduced by
Found "!== false". Use Yoda Condition checks, you must
Loading history...
156
				$message = str_replace( "{{$key}}", $val, $message );
157
			}
158
		}
159
160
		return $message;
161
	}
162
}
163
164
/** Load implementations. */
165
require gravityview()->plugin->dir( 'future/includes/class-gv-logger-wp-action.php' );
166