Passed
Push — master ( ff717e...ba0f3b )
by Paul
08:41 queued 04:33
created
plugin/Modules/Translation.php 3 patches
Braces   +6 added lines, -3 removed lines patch added patch discarded remove patch
@@ -73,7 +73,8 @@  discard block
 block discarded – undo
73 73
             foreach ($potEntries as $key => $entry) {
74 74
                 $entries[html_entity_decode($key, ENT_COMPAT, 'UTF-8')] = $entry;
75 75
             }
76
-        } catch (Exception $e) {
76
+        }
77
+        catch (Exception $e) {
77 78
             glsr_log()->error($e->getMessage());
78 79
         }
79 80
         return $entries;
@@ -196,7 +197,8 @@  discard block
 block discarded – undo
196 197
                 if (in_array($needle, [$single, $plural])) {
197 198
                     $this->results[$key] = $entry;
198 199
                 }
199
-            } elseif (false !== strpos(sprintf('%s %s', $single, $plural), $needle)) {
200
+            }
201
+            elseif (false !== strpos(sprintf('%s %s', $single, $plural), $needle)) {
200 202
                 $this->results[$key] = $entry;
201 203
             }
202 204
         }
@@ -242,7 +244,8 @@  discard block
 block discarded – undo
242 244
             foreach ($keys as $key) {
243 245
                 try {
244 246
                     $entry = $this->normalizeEntryString($entry, $key);
245
-                } catch (\TypeError $error) {
247
+                }
248
+                catch (\TypeError $error) {
246 249
                     glsr_log()->once('error', 'Translation/normalize', $error);
247 250
                     glsr_log()->once('debug', 'Translation/normalize', $entry);
248 251
                 }
Please login to merge, or discard this patch.
Indentation   +250 added lines, -250 removed lines patch added patch discarded remove patch
@@ -10,272 +10,272 @@
 block discarded – undo
10 10
 
11 11
 class Translation
12 12
 {
13
-    const SEARCH_THRESHOLD = 3;
13
+	const SEARCH_THRESHOLD = 3;
14 14
 
15
-    /**
16
-     * @var array
17
-     */
18
-    protected $entries;
15
+	/**
16
+	 * @var array
17
+	 */
18
+	protected $entries;
19 19
 
20
-    /**
21
-     * @var array
22
-     */
23
-    protected $results;
20
+	/**
21
+	 * @var array
22
+	 */
23
+	protected $results;
24 24
 
25
-    /**
26
-     * Returns all saved custom translations with translation context.
27
-     * @return array
28
-     */
29
-    public function all()
30
-    {
31
-        $translations = $this->translations();
32
-        $entries = $this->filter($translations, $this->entries())->results();
33
-        array_walk($translations, function (&$entry) use ($entries) {
34
-            $entry['desc'] = array_key_exists($entry['id'], $entries)
35
-                ? $this->getEntryString($entries[$entry['id']], 'msgctxt')
36
-                : '';
37
-        });
38
-        return $translations;
39
-    }
25
+	/**
26
+	 * Returns all saved custom translations with translation context.
27
+	 * @return array
28
+	 */
29
+	public function all()
30
+	{
31
+		$translations = $this->translations();
32
+		$entries = $this->filter($translations, $this->entries())->results();
33
+		array_walk($translations, function (&$entry) use ($entries) {
34
+			$entry['desc'] = array_key_exists($entry['id'], $entries)
35
+				? $this->getEntryString($entries[$entry['id']], 'msgctxt')
36
+				: '';
37
+		});
38
+		return $translations;
39
+	}
40 40
 
41
-    /**
42
-     * @return array
43
-     */
44
-    public function entries()
45
-    {
46
-        if (!isset($this->entries)) {
47
-            $potFile = glsr()->path(glsr()->languages.'/'.Application::ID.'.pot');
48
-            $entries = $this->extractEntriesFromPotFile($potFile);
49
-            $entries = apply_filters('site-reviews/translation/entries', $entries);
50
-            $this->entries = $entries;
51
-        }
52
-        return $this->entries;
53
-    }
41
+	/**
42
+	 * @return array
43
+	 */
44
+	public function entries()
45
+	{
46
+		if (!isset($this->entries)) {
47
+			$potFile = glsr()->path(glsr()->languages.'/'.Application::ID.'.pot');
48
+			$entries = $this->extractEntriesFromPotFile($potFile);
49
+			$entries = apply_filters('site-reviews/translation/entries', $entries);
50
+			$this->entries = $entries;
51
+		}
52
+		return $this->entries;
53
+	}
54 54
 
55
-    /**
56
-     * @param array|null $entriesToExclude
57
-     * @param array|null $entries
58
-     * @return static
59
-     */
60
-    public function exclude($entriesToExclude = null, $entries = null)
61
-    {
62
-        return $this->filter($entriesToExclude, $entries, false);
63
-    }
55
+	/**
56
+	 * @param array|null $entriesToExclude
57
+	 * @param array|null $entries
58
+	 * @return static
59
+	 */
60
+	public function exclude($entriesToExclude = null, $entries = null)
61
+	{
62
+		return $this->filter($entriesToExclude, $entries, false);
63
+	}
64 64
 
65
-    /**
66
-     * @param string $potFile
67
-     * @return array
68
-     */
69
-    public function extractEntriesFromPotFile($potFile, array $entries = [])
70
-    {
71
-        try {
72
-            $potEntries = $this->normalize(Parser::parseFile($potFile)->getEntries());
73
-            foreach ($potEntries as $key => $entry) {
74
-                $entries[html_entity_decode($key, ENT_COMPAT, 'UTF-8')] = $entry;
75
-            }
76
-        } catch (Exception $e) {
77
-            glsr_log()->error($e->getMessage());
78
-        }
79
-        return $entries;
80
-    }
65
+	/**
66
+	 * @param string $potFile
67
+	 * @return array
68
+	 */
69
+	public function extractEntriesFromPotFile($potFile, array $entries = [])
70
+	{
71
+		try {
72
+			$potEntries = $this->normalize(Parser::parseFile($potFile)->getEntries());
73
+			foreach ($potEntries as $key => $entry) {
74
+				$entries[html_entity_decode($key, ENT_COMPAT, 'UTF-8')] = $entry;
75
+			}
76
+		} catch (Exception $e) {
77
+			glsr_log()->error($e->getMessage());
78
+		}
79
+		return $entries;
80
+	}
81 81
 
82
-    /**
83
-     * @param array|null $filterWith
84
-     * @param array|null $entries
85
-     * @param bool $intersect
86
-     * @return static
87
-     */
88
-    public function filter($filterWith = null, $entries = null, $intersect = true)
89
-    {
90
-        if (!is_array($entries)) {
91
-            $entries = $this->results;
92
-        }
93
-        if (!is_array($filterWith)) {
94
-            $filterWith = $this->translations();
95
-        }
96
-        $keys = array_flip(glsr_array_column($filterWith, 'id'));
97
-        $this->results = $intersect
98
-            ? array_intersect_key($entries, $keys)
99
-            : array_diff_key($entries, $keys);
100
-        return $this;
101
-    }
82
+	/**
83
+	 * @param array|null $filterWith
84
+	 * @param array|null $entries
85
+	 * @param bool $intersect
86
+	 * @return static
87
+	 */
88
+	public function filter($filterWith = null, $entries = null, $intersect = true)
89
+	{
90
+		if (!is_array($entries)) {
91
+			$entries = $this->results;
92
+		}
93
+		if (!is_array($filterWith)) {
94
+			$filterWith = $this->translations();
95
+		}
96
+		$keys = array_flip(glsr_array_column($filterWith, 'id'));
97
+		$this->results = $intersect
98
+			? array_intersect_key($entries, $keys)
99
+			: array_diff_key($entries, $keys);
100
+		return $this;
101
+	}
102 102
 
103
-    /**
104
-     * @param string $template
105
-     * @return string
106
-     */
107
-    public function render($template, array $entry)
108
-    {
109
-        $data = array_combine(
110
-            array_map(function ($key) { return 'data.'.$key; }, array_keys($entry)),
111
-            $entry
112
-        );
113
-        $data['data.class'] = $data['data.error'] = '';
114
-        if (false === array_search($entry['s1'], glsr_array_column($this->entries(), 'msgid'))) {
115
-            $data['data.class'] = 'is-invalid';
116
-            $data['data.error'] = __('This custom translation is no longer valid as the original text has been changed or removed.', 'site-reviews');
117
-        }
118
-        return glsr(Template::class)->build('partials/translations/'.$template, [
119
-            'context' => $data,
120
-        ]);
121
-    }
103
+	/**
104
+	 * @param string $template
105
+	 * @return string
106
+	 */
107
+	public function render($template, array $entry)
108
+	{
109
+		$data = array_combine(
110
+			array_map(function ($key) { return 'data.'.$key; }, array_keys($entry)),
111
+			$entry
112
+		);
113
+		$data['data.class'] = $data['data.error'] = '';
114
+		if (false === array_search($entry['s1'], glsr_array_column($this->entries(), 'msgid'))) {
115
+			$data['data.class'] = 'is-invalid';
116
+			$data['data.error'] = __('This custom translation is no longer valid as the original text has been changed or removed.', 'site-reviews');
117
+		}
118
+		return glsr(Template::class)->build('partials/translations/'.$template, [
119
+			'context' => $data,
120
+		]);
121
+	}
122 122
 
123
-    /**
124
-     * Returns a rendered string of all saved custom translations with translation context.
125
-     * @return string
126
-     */
127
-    public function renderAll()
128
-    {
129
-        $rendered = '';
130
-        foreach ($this->all() as $index => $entry) {
131
-            $entry['index'] = $index;
132
-            $entry['prefix'] = OptionManager::databaseKey();
133
-            $rendered.= $this->render($entry['type'], $entry);
134
-        }
135
-        return $rendered;
136
-    }
123
+	/**
124
+	 * Returns a rendered string of all saved custom translations with translation context.
125
+	 * @return string
126
+	 */
127
+	public function renderAll()
128
+	{
129
+		$rendered = '';
130
+		foreach ($this->all() as $index => $entry) {
131
+			$entry['index'] = $index;
132
+			$entry['prefix'] = OptionManager::databaseKey();
133
+			$rendered.= $this->render($entry['type'], $entry);
134
+		}
135
+		return $rendered;
136
+	}
137 137
 
138
-    /**
139
-     * @param bool $resetAfterRender
140
-     * @return string
141
-     */
142
-    public function renderResults($resetAfterRender = true)
143
-    {
144
-        $rendered = '';
145
-        foreach ($this->results as $id => $entry) {
146
-            $data = [
147
-                'desc' => $this->getEntryString($entry, 'msgctxt'),
148
-                'id' => $id,
149
-                'p1' => $this->getEntryString($entry, 'msgid_plural'),
150
-                's1' => $this->getEntryString($entry, 'msgid'),
151
-            ];
152
-            $text = !empty($data['p1'])
153
-                ? sprintf('%s | %s', $data['s1'], $data['p1'])
154
-                : $data['s1'];
155
-            $rendered.= $this->render('result', [
156
-                'entry' => json_encode($data, JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
157
-                'text' => wp_strip_all_tags($text),
158
-            ]);
159
-        }
160
-        if ($resetAfterRender) {
161
-            $this->reset();
162
-        }
163
-        return $rendered;
164
-    }
138
+	/**
139
+	 * @param bool $resetAfterRender
140
+	 * @return string
141
+	 */
142
+	public function renderResults($resetAfterRender = true)
143
+	{
144
+		$rendered = '';
145
+		foreach ($this->results as $id => $entry) {
146
+			$data = [
147
+				'desc' => $this->getEntryString($entry, 'msgctxt'),
148
+				'id' => $id,
149
+				'p1' => $this->getEntryString($entry, 'msgid_plural'),
150
+				's1' => $this->getEntryString($entry, 'msgid'),
151
+			];
152
+			$text = !empty($data['p1'])
153
+				? sprintf('%s | %s', $data['s1'], $data['p1'])
154
+				: $data['s1'];
155
+			$rendered.= $this->render('result', [
156
+				'entry' => json_encode($data, JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
157
+				'text' => wp_strip_all_tags($text),
158
+			]);
159
+		}
160
+		if ($resetAfterRender) {
161
+			$this->reset();
162
+		}
163
+		return $rendered;
164
+	}
165 165
 
166
-    /**
167
-     * @return void
168
-     */
169
-    public function reset()
170
-    {
171
-        $this->results = [];
172
-    }
166
+	/**
167
+	 * @return void
168
+	 */
169
+	public function reset()
170
+	{
171
+		$this->results = [];
172
+	}
173 173
 
174
-    /**
175
-     * @return array
176
-     */
177
-    public function results()
178
-    {
179
-        $results = $this->results;
180
-        $this->reset();
181
-        return $results;
182
-    }
174
+	/**
175
+	 * @return array
176
+	 */
177
+	public function results()
178
+	{
179
+		$results = $this->results;
180
+		$this->reset();
181
+		return $results;
182
+	}
183 183
 
184
-    /**
185
-     * @param string $needle
186
-     * @return static
187
-     */
188
-    public function search($needle = '')
189
-    {
190
-        $this->reset();
191
-        $needle = trim(strtolower($needle));
192
-        foreach ($this->entries() as $key => $entry) {
193
-            $single = strtolower($this->getEntryString($entry, 'msgid'));
194
-            $plural = strtolower($this->getEntryString($entry, 'msgid_plural'));
195
-            if (strlen($needle) < static::SEARCH_THRESHOLD) {
196
-                if (in_array($needle, [$single, $plural])) {
197
-                    $this->results[$key] = $entry;
198
-                }
199
-            } elseif (false !== strpos(sprintf('%s %s', $single, $plural), $needle)) {
200
-                $this->results[$key] = $entry;
201
-            }
202
-        }
203
-        return $this;
204
-    }
184
+	/**
185
+	 * @param string $needle
186
+	 * @return static
187
+	 */
188
+	public function search($needle = '')
189
+	{
190
+		$this->reset();
191
+		$needle = trim(strtolower($needle));
192
+		foreach ($this->entries() as $key => $entry) {
193
+			$single = strtolower($this->getEntryString($entry, 'msgid'));
194
+			$plural = strtolower($this->getEntryString($entry, 'msgid_plural'));
195
+			if (strlen($needle) < static::SEARCH_THRESHOLD) {
196
+				if (in_array($needle, [$single, $plural])) {
197
+					$this->results[$key] = $entry;
198
+				}
199
+			} elseif (false !== strpos(sprintf('%s %s', $single, $plural), $needle)) {
200
+				$this->results[$key] = $entry;
201
+			}
202
+		}
203
+		return $this;
204
+	}
205 205
 
206
-    /**
207
-     * Store the translations to avoid unnecessary loops.
208
-     * @return array
209
-     */
210
-    public function translations()
211
-    {
212
-        static $translations;
213
-        if (empty($translations)) {
214
-            $settings = glsr(OptionManager::class)->get('settings');
215
-            $translations = isset($settings['strings'])
216
-                ? $this->normalizeSettings((array) $settings['strings'])
217
-                : [];
218
-        }
219
-        return $translations;
220
-    }
206
+	/**
207
+	 * Store the translations to avoid unnecessary loops.
208
+	 * @return array
209
+	 */
210
+	public function translations()
211
+	{
212
+		static $translations;
213
+		if (empty($translations)) {
214
+			$settings = glsr(OptionManager::class)->get('settings');
215
+			$translations = isset($settings['strings'])
216
+				? $this->normalizeSettings((array) $settings['strings'])
217
+				: [];
218
+		}
219
+		return $translations;
220
+	}
221 221
 
222
-    /**
223
-     * @param string $key
224
-     * @return string
225
-     */
226
-    protected function getEntryString(array $entry, $key)
227
-    {
228
-        return isset($entry[$key])
229
-            ? implode('', (array) $entry[$key])
230
-            : '';
231
-    }
222
+	/**
223
+	 * @param string $key
224
+	 * @return string
225
+	 */
226
+	protected function getEntryString(array $entry, $key)
227
+	{
228
+		return isset($entry[$key])
229
+			? implode('', (array) $entry[$key])
230
+			: '';
231
+	}
232 232
 
233
-    /**
234
-     * @return array
235
-     */
236
-    protected function normalize(array $entries)
237
-    {
238
-        $keys = [
239
-            'msgctxt', 'msgid', 'msgid_plural', 'msgstr', 'msgstr[0]', 'msgstr[1]',
240
-        ];
241
-        array_walk($entries, function (&$entry) use ($keys) {
242
-            foreach ($keys as $key) {
243
-                try {
244
-                    $entry = $this->normalizeEntryString($entry, $key);
245
-                } catch (\TypeError $error) {
246
-                    glsr_log()->once('error', 'Translation/normalize', $error);
247
-                    glsr_log()->once('debug', 'Translation/normalize', $entry);
248
-                }
249
-            }
250
-        });
251
-        return $entries;
252
-    }
233
+	/**
234
+	 * @return array
235
+	 */
236
+	protected function normalize(array $entries)
237
+	{
238
+		$keys = [
239
+			'msgctxt', 'msgid', 'msgid_plural', 'msgstr', 'msgstr[0]', 'msgstr[1]',
240
+		];
241
+		array_walk($entries, function (&$entry) use ($keys) {
242
+			foreach ($keys as $key) {
243
+				try {
244
+					$entry = $this->normalizeEntryString($entry, $key);
245
+				} catch (\TypeError $error) {
246
+					glsr_log()->once('error', 'Translation/normalize', $error);
247
+					glsr_log()->once('debug', 'Translation/normalize', $entry);
248
+				}
249
+			}
250
+		});
251
+		return $entries;
252
+	}
253 253
 
254
-    /**
255
-     * @param string $key
256
-     * @return array
257
-     */
258
-    protected function normalizeEntryString(array $entry, $key)
259
-    {
260
-        if (isset($entry[$key])) {
261
-            $entry[$key] = $this->getEntryString($entry, $key);
262
-        }
263
-        return $entry;
264
-    }
254
+	/**
255
+	 * @param string $key
256
+	 * @return array
257
+	 */
258
+	protected function normalizeEntryString(array $entry, $key)
259
+	{
260
+		if (isset($entry[$key])) {
261
+			$entry[$key] = $this->getEntryString($entry, $key);
262
+		}
263
+		return $entry;
264
+	}
265 265
 
266
-    /**
267
-     * @return array
268
-     */
269
-    protected function normalizeSettings(array $strings)
270
-    {
271
-        $defaultString = array_fill_keys(['id', 's1', 's2', 'p1', 'p2'], '');
272
-        $strings = array_filter($strings, 'is_array');
273
-        foreach ($strings as &$string) {
274
-            $string['type'] = isset($string['p1']) ? 'plural' : 'single';
275
-            $string = wp_parse_args($string, $defaultString);
276
-        }
277
-        return array_filter($strings, function ($string) {
278
-            return !empty($string['id']);
279
-        });
280
-    }
266
+	/**
267
+	 * @return array
268
+	 */
269
+	protected function normalizeSettings(array $strings)
270
+	{
271
+		$defaultString = array_fill_keys(['id', 's1', 's2', 'p1', 'p2'], '');
272
+		$strings = array_filter($strings, 'is_array');
273
+		foreach ($strings as &$string) {
274
+			$string['type'] = isset($string['p1']) ? 'plural' : 'single';
275
+			$string = wp_parse_args($string, $defaultString);
276
+		}
277
+		return array_filter($strings, function ($string) {
278
+			return !empty($string['id']);
279
+		});
280
+	}
281 281
 }
Please login to merge, or discard this patch.
Spacing   +70 added lines, -70 removed lines patch added patch discarded remove patch
@@ -29,10 +29,10 @@  discard block
 block discarded – undo
29 29
     public function all()
30 30
     {
31 31
         $translations = $this->translations();
32
-        $entries = $this->filter($translations, $this->entries())->results();
33
-        array_walk($translations, function (&$entry) use ($entries) {
34
-            $entry['desc'] = array_key_exists($entry['id'], $entries)
35
-                ? $this->getEntryString($entries[$entry['id']], 'msgctxt')
32
+        $entries = $this->filter( $translations, $this->entries() )->results();
33
+        array_walk( $translations, function( &$entry ) use ($entries) {
34
+            $entry['desc'] = array_key_exists( $entry['id'], $entries )
35
+                ? $this->getEntryString( $entries[$entry['id']], 'msgctxt' )
36 36
                 : '';
37 37
         });
38 38
         return $translations;
@@ -43,10 +43,10 @@  discard block
 block discarded – undo
43 43
      */
44 44
     public function entries()
45 45
     {
46
-        if (!isset($this->entries)) {
47
-            $potFile = glsr()->path(glsr()->languages.'/'.Application::ID.'.pot');
48
-            $entries = $this->extractEntriesFromPotFile($potFile);
49
-            $entries = apply_filters('site-reviews/translation/entries', $entries);
46
+        if( !isset($this->entries) ) {
47
+            $potFile = glsr()->path( glsr()->languages.'/'.Application::ID.'.pot' );
48
+            $entries = $this->extractEntriesFromPotFile( $potFile );
49
+            $entries = apply_filters( 'site-reviews/translation/entries', $entries );
50 50
             $this->entries = $entries;
51 51
         }
52 52
         return $this->entries;
@@ -57,24 +57,24 @@  discard block
 block discarded – undo
57 57
      * @param array|null $entries
58 58
      * @return static
59 59
      */
60
-    public function exclude($entriesToExclude = null, $entries = null)
60
+    public function exclude( $entriesToExclude = null, $entries = null )
61 61
     {
62
-        return $this->filter($entriesToExclude, $entries, false);
62
+        return $this->filter( $entriesToExclude, $entries, false );
63 63
     }
64 64
 
65 65
     /**
66 66
      * @param string $potFile
67 67
      * @return array
68 68
      */
69
-    public function extractEntriesFromPotFile($potFile, array $entries = [])
69
+    public function extractEntriesFromPotFile( $potFile, array $entries = [] )
70 70
     {
71 71
         try {
72
-            $potEntries = $this->normalize(Parser::parseFile($potFile)->getEntries());
73
-            foreach ($potEntries as $key => $entry) {
74
-                $entries[html_entity_decode($key, ENT_COMPAT, 'UTF-8')] = $entry;
72
+            $potEntries = $this->normalize( Parser::parseFile( $potFile )->getEntries() );
73
+            foreach( $potEntries as $key => $entry ) {
74
+                $entries[html_entity_decode( $key, ENT_COMPAT, 'UTF-8' )] = $entry;
75 75
             }
76
-        } catch (Exception $e) {
77
-            glsr_log()->error($e->getMessage());
76
+        } catch( Exception $e ) {
77
+            glsr_log()->error( $e->getMessage() );
78 78
         }
79 79
         return $entries;
80 80
     }
@@ -85,18 +85,18 @@  discard block
 block discarded – undo
85 85
      * @param bool $intersect
86 86
      * @return static
87 87
      */
88
-    public function filter($filterWith = null, $entries = null, $intersect = true)
88
+    public function filter( $filterWith = null, $entries = null, $intersect = true )
89 89
     {
90
-        if (!is_array($entries)) {
90
+        if( !is_array( $entries ) ) {
91 91
             $entries = $this->results;
92 92
         }
93
-        if (!is_array($filterWith)) {
93
+        if( !is_array( $filterWith ) ) {
94 94
             $filterWith = $this->translations();
95 95
         }
96
-        $keys = array_flip(glsr_array_column($filterWith, 'id'));
96
+        $keys = array_flip( glsr_array_column( $filterWith, 'id' ) );
97 97
         $this->results = $intersect
98
-            ? array_intersect_key($entries, $keys)
99
-            : array_diff_key($entries, $keys);
98
+            ? array_intersect_key( $entries, $keys )
99
+            : array_diff_key( $entries, $keys );
100 100
         return $this;
101 101
     }
102 102
 
@@ -104,20 +104,20 @@  discard block
 block discarded – undo
104 104
      * @param string $template
105 105
      * @return string
106 106
      */
107
-    public function render($template, array $entry)
107
+    public function render( $template, array $entry )
108 108
     {
109 109
         $data = array_combine(
110
-            array_map(function ($key) { return 'data.'.$key; }, array_keys($entry)),
110
+            array_map( function( $key ) { return 'data.'.$key; }, array_keys( $entry ) ),
111 111
             $entry
112 112
         );
113 113
         $data['data.class'] = $data['data.error'] = '';
114
-        if (false === array_search($entry['s1'], glsr_array_column($this->entries(), 'msgid'))) {
114
+        if( false === array_search( $entry['s1'], glsr_array_column( $this->entries(), 'msgid' ) ) ) {
115 115
             $data['data.class'] = 'is-invalid';
116
-            $data['data.error'] = __('This custom translation is no longer valid as the original text has been changed or removed.', 'site-reviews');
116
+            $data['data.error'] = __( 'This custom translation is no longer valid as the original text has been changed or removed.', 'site-reviews' );
117 117
         }
118
-        return glsr(Template::class)->build('partials/translations/'.$template, [
118
+        return glsr( Template::class )->build( 'partials/translations/'.$template, [
119 119
             'context' => $data,
120
-        ]);
120
+        ] );
121 121
     }
122 122
 
123 123
     /**
@@ -127,10 +127,10 @@  discard block
 block discarded – undo
127 127
     public function renderAll()
128 128
     {
129 129
         $rendered = '';
130
-        foreach ($this->all() as $index => $entry) {
130
+        foreach( $this->all() as $index => $entry ) {
131 131
             $entry['index'] = $index;
132 132
             $entry['prefix'] = OptionManager::databaseKey();
133
-            $rendered.= $this->render($entry['type'], $entry);
133
+            $rendered .= $this->render( $entry['type'], $entry );
134 134
         }
135 135
         return $rendered;
136 136
     }
@@ -139,25 +139,25 @@  discard block
 block discarded – undo
139 139
      * @param bool $resetAfterRender
140 140
      * @return string
141 141
      */
142
-    public function renderResults($resetAfterRender = true)
142
+    public function renderResults( $resetAfterRender = true )
143 143
     {
144 144
         $rendered = '';
145
-        foreach ($this->results as $id => $entry) {
145
+        foreach( $this->results as $id => $entry ) {
146 146
             $data = [
147
-                'desc' => $this->getEntryString($entry, 'msgctxt'),
147
+                'desc' => $this->getEntryString( $entry, 'msgctxt' ),
148 148
                 'id' => $id,
149
-                'p1' => $this->getEntryString($entry, 'msgid_plural'),
150
-                's1' => $this->getEntryString($entry, 'msgid'),
149
+                'p1' => $this->getEntryString( $entry, 'msgid_plural' ),
150
+                's1' => $this->getEntryString( $entry, 'msgid' ),
151 151
             ];
152 152
             $text = !empty($data['p1'])
153
-                ? sprintf('%s | %s', $data['s1'], $data['p1'])
153
+                ? sprintf( '%s | %s', $data['s1'], $data['p1'] )
154 154
                 : $data['s1'];
155
-            $rendered.= $this->render('result', [
156
-                'entry' => json_encode($data, JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
157
-                'text' => wp_strip_all_tags($text),
158
-            ]);
155
+            $rendered .= $this->render( 'result', [
156
+                'entry' => json_encode( $data, JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ),
157
+                'text' => wp_strip_all_tags( $text ),
158
+            ] );
159 159
         }
160
-        if ($resetAfterRender) {
160
+        if( $resetAfterRender ) {
161 161
             $this->reset();
162 162
         }
163 163
         return $rendered;
@@ -185,18 +185,18 @@  discard block
 block discarded – undo
185 185
      * @param string $needle
186 186
      * @return static
187 187
      */
188
-    public function search($needle = '')
188
+    public function search( $needle = '' )
189 189
     {
190 190
         $this->reset();
191
-        $needle = trim(strtolower($needle));
192
-        foreach ($this->entries() as $key => $entry) {
193
-            $single = strtolower($this->getEntryString($entry, 'msgid'));
194
-            $plural = strtolower($this->getEntryString($entry, 'msgid_plural'));
195
-            if (strlen($needle) < static::SEARCH_THRESHOLD) {
196
-                if (in_array($needle, [$single, $plural])) {
191
+        $needle = trim( strtolower( $needle ) );
192
+        foreach( $this->entries() as $key => $entry ) {
193
+            $single = strtolower( $this->getEntryString( $entry, 'msgid' ) );
194
+            $plural = strtolower( $this->getEntryString( $entry, 'msgid_plural' ) );
195
+            if( strlen( $needle ) < static::SEARCH_THRESHOLD ) {
196
+                if( in_array( $needle, [$single, $plural] ) ) {
197 197
                     $this->results[$key] = $entry;
198 198
                 }
199
-            } elseif (false !== strpos(sprintf('%s %s', $single, $plural), $needle)) {
199
+            } elseif( false !== strpos( sprintf( '%s %s', $single, $plural ), $needle ) ) {
200 200
                 $this->results[$key] = $entry;
201 201
             }
202 202
         }
@@ -210,10 +210,10 @@  discard block
 block discarded – undo
210 210
     public function translations()
211 211
     {
212 212
         static $translations;
213
-        if (empty($translations)) {
214
-            $settings = glsr(OptionManager::class)->get('settings');
213
+        if( empty($translations) ) {
214
+            $settings = glsr( OptionManager::class )->get( 'settings' );
215 215
             $translations = isset($settings['strings'])
216
-                ? $this->normalizeSettings((array) $settings['strings'])
216
+                ? $this->normalizeSettings( (array)$settings['strings'] )
217 217
                 : [];
218 218
         }
219 219
         return $translations;
@@ -223,28 +223,28 @@  discard block
 block discarded – undo
223 223
      * @param string $key
224 224
      * @return string
225 225
      */
226
-    protected function getEntryString(array $entry, $key)
226
+    protected function getEntryString( array $entry, $key )
227 227
     {
228 228
         return isset($entry[$key])
229
-            ? implode('', (array) $entry[$key])
229
+            ? implode( '', (array)$entry[$key] )
230 230
             : '';
231 231
     }
232 232
 
233 233
     /**
234 234
      * @return array
235 235
      */
236
-    protected function normalize(array $entries)
236
+    protected function normalize( array $entries )
237 237
     {
238 238
         $keys = [
239 239
             'msgctxt', 'msgid', 'msgid_plural', 'msgstr', 'msgstr[0]', 'msgstr[1]',
240 240
         ];
241
-        array_walk($entries, function (&$entry) use ($keys) {
242
-            foreach ($keys as $key) {
241
+        array_walk( $entries, function( &$entry ) use ($keys) {
242
+            foreach( $keys as $key ) {
243 243
                 try {
244
-                    $entry = $this->normalizeEntryString($entry, $key);
245
-                } catch (\TypeError $error) {
246
-                    glsr_log()->once('error', 'Translation/normalize', $error);
247
-                    glsr_log()->once('debug', 'Translation/normalize', $entry);
244
+                    $entry = $this->normalizeEntryString( $entry, $key );
245
+                } catch( \TypeError $error ) {
246
+                    glsr_log()->once( 'error', 'Translation/normalize', $error );
247
+                    glsr_log()->once( 'debug', 'Translation/normalize', $entry );
248 248
                 }
249 249
             }
250 250
         });
@@ -255,10 +255,10 @@  discard block
 block discarded – undo
255 255
      * @param string $key
256 256
      * @return array
257 257
      */
258
-    protected function normalizeEntryString(array $entry, $key)
258
+    protected function normalizeEntryString( array $entry, $key )
259 259
     {
260
-        if (isset($entry[$key])) {
261
-            $entry[$key] = $this->getEntryString($entry, $key);
260
+        if( isset($entry[$key]) ) {
261
+            $entry[$key] = $this->getEntryString( $entry, $key );
262 262
         }
263 263
         return $entry;
264 264
     }
@@ -266,15 +266,15 @@  discard block
 block discarded – undo
266 266
     /**
267 267
      * @return array
268 268
      */
269
-    protected function normalizeSettings(array $strings)
269
+    protected function normalizeSettings( array $strings )
270 270
     {
271
-        $defaultString = array_fill_keys(['id', 's1', 's2', 'p1', 'p2'], '');
272
-        $strings = array_filter($strings, 'is_array');
273
-        foreach ($strings as &$string) {
271
+        $defaultString = array_fill_keys( ['id', 's1', 's2', 'p1', 'p2'], '' );
272
+        $strings = array_filter( $strings, 'is_array' );
273
+        foreach( $strings as &$string ) {
274 274
             $string['type'] = isset($string['p1']) ? 'plural' : 'single';
275
-            $string = wp_parse_args($string, $defaultString);
275
+            $string = wp_parse_args( $string, $defaultString );
276 276
         }
277
-        return array_filter($strings, function ($string) {
277
+        return array_filter( $strings, function( $string ) {
278 278
             return !empty($string['id']);
279 279
         });
280 280
     }
Please login to merge, or discard this patch.
plugin/Modules/Console.php 3 patches
Braces   +2 added lines, -1 removed lines patch added patch discarded remove patch
@@ -415,7 +415,8 @@
 block discarded – undo
415 415
     {
416 416
         if ($value instanceof DateTime) {
417 417
             $value = $value->format('Y-m-d H:i:s');
418
-        } elseif ($this->isObjectOrArray($value)) {
418
+        }
419
+        elseif ($this->isObjectOrArray($value)) {
419 420
             $value = json_encode($value);
420 421
         }
421 422
         return (string) $value;
Please login to merge, or discard this patch.
Indentation   +429 added lines, -429 removed lines patch added patch discarded remove patch
@@ -9,433 +9,433 @@
 block discarded – undo
9 9
 
10 10
 class Console
11 11
 {
12
-    const DEBUG = 0;      // Detailed debug information
13
-    const INFO = 1;       // Interesting events
14
-    const NOTICE = 2;     // Normal but significant events
15
-    const WARNING = 4;    // Exceptional occurrences that are not errors
16
-    const ERROR = 8;      // Runtime errors that do not require immediate action
17
-    const CRITICAL = 16;  // Critical conditions
18
-    const ALERT = 32;     // Action must be taken immediately
19
-    const EMERGENCY = 64; // System is unusable
20
-
21
-    protected $file;
22
-    protected $log;
23
-    protected $logOnceKey = 'glsr_log_once';
24
-
25
-    public function __construct()
26
-    {
27
-        $this->file = glsr()->path('console.log');
28
-        $this->log = file_exists($this->file)
29
-            ? file_get_contents($this->file)
30
-            : '';
31
-        $this->reset();
32
-    }
33
-
34
-    /**
35
-     * @return string
36
-     */
37
-    public function __toString()
38
-    {
39
-        return $this->get();
40
-    }
41
-
42
-    /**
43
-     * Action must be taken immediately
44
-     * Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.
45
-     * @param mixed $message
46
-     * @param array $context
47
-     * @return static
48
-     */
49
-    public function alert($message, array $context = [])
50
-    {
51
-        return $this->log(static::ALERT, $message, $context);
52
-    }
53
-
54
-    /**
55
-     * @return void
56
-     */
57
-    public function clear()
58
-    {
59
-        $this->log = '';
60
-        file_put_contents($this->file, $this->log);
61
-    }
62
-
63
-    /**
64
-     * Critical conditions
65
-     * Example: Application component unavailable, unexpected exception.
66
-     * @param mixed $message
67
-     * @param array $context
68
-     * @return static
69
-     */
70
-    public function critical($message, array $context = [])
71
-    {
72
-        return $this->log(static::CRITICAL, $message, $context);
73
-    }
74
-
75
-    /**
76
-     * Detailed debug information.
77
-     * @param mixed $message
78
-     * @param array $context
79
-     * @return static
80
-     */
81
-    public function debug($message, array $context = [])
82
-    {
83
-        return $this->log(static::DEBUG, $message, $context);
84
-    }
85
-
86
-    /**
87
-     * System is unusable.
88
-     * @param mixed $message
89
-     * @param array $context
90
-     * @return static
91
-     */
92
-    public function emergency($message, array $context = [])
93
-    {
94
-        return $this->log(static::EMERGENCY, $message, $context);
95
-    }
96
-
97
-    /**
98
-     * Runtime errors that do not require immediate action but should typically be logged and monitored.
99
-     * @param mixed $message
100
-     * @param array $context
101
-     * @return static
102
-     */
103
-    public function error($message, array $context = [])
104
-    {
105
-        return $this->log(static::ERROR, $message, $context);
106
-    }
107
-
108
-    /**
109
-     * @return string
110
-     */
111
-    public function get()
112
-    {
113
-        return empty($this->log)
114
-            ? __('Console is empty', 'site-reviews')
115
-            : $this->log;
116
-    }
117
-
118
-    /**
119
-     * @return int
120
-     */
121
-    public function getLevel()
122
-    {
123
-        return intval(apply_filters('site-reviews/console/level', static::INFO));
124
-    }
125
-
126
-    /**
127
-     * @return array
128
-     */
129
-    public function getLevels()
130
-    {
131
-        $constants = (new ReflectionClass(__CLASS__))->getConstants();
132
-        return array_map('strtolower', array_flip($constants));
133
-    }
134
-
135
-    /**
136
-     * @return string
137
-     */
138
-    public function humanLevel()
139
-    {
140
-        $level = $this->getLevel();
141
-        return sprintf('%s (%d)', strtoupper(Arr::get($this->getLevels(), $level, 'unknown')), $level);
142
-    }
143
-
144
-    /**
145
-     * @param string|null $valueIfEmpty
146
-     * @return string
147
-     */
148
-    public function humanSize($valueIfEmpty = null)
149
-    {
150
-        $bytes = $this->size();
151
-        if (empty($bytes) && is_string($valueIfEmpty)) {
152
-            return $valueIfEmpty;
153
-        }
154
-        $exponent = floor(log(max($bytes, 1), 1024));
155
-        return round($bytes / pow(1024, $exponent), 2).' '.['bytes', 'KB', 'MB', 'GB'][$exponent];
156
-    }
157
-
158
-    /**
159
-     * Interesting events
160
-     * Example: User logs in, SQL logs.
161
-     * @param mixed $message
162
-     * @param array $context
163
-     * @return static
164
-     */
165
-    public function info($message, array $context = [])
166
-    {
167
-        return $this->log(static::INFO, $message, $context);
168
-    }
169
-
170
-    /**
171
-     * @param int $level
172
-     * @param mixed $message
173
-     * @param array $context
174
-     * @param string $backtraceLine
175
-     * @return static
176
-     */
177
-    public function log($level, $message, $context = [], $backtraceLine = '')
178
-    {
179
-        if (empty($backtraceLine)) {
180
-            $backtraceLine = $this->getBacktraceLine();
181
-        }
182
-        if ($this->canLogEntry($level, $backtraceLine)) {
183
-            $levelName = Arr::get($this->getLevels(), $level);
184
-            $context = Arr::consolidateArray($context);
185
-            $backtraceLine = $this->normalizeBacktraceLine($backtraceLine);
186
-            $message = $this->interpolate($message, $context);
187
-            $entry = $this->buildLogEntry($levelName, $message, $backtraceLine);
188
-            file_put_contents($this->file, $entry.PHP_EOL, FILE_APPEND | LOCK_EX);
189
-            apply_filters('console', $message, $levelName, $backtraceLine); // Show in Blackbar plugin if installed
190
-            $this->reset();
191
-        }
192
-        return $this;
193
-    }
194
-
195
-    /**
196
-     * @return void
197
-     */
198
-    public function logOnce()
199
-    {
200
-        $once = Arr::consolidateArray(glsr()->{$this->logOnceKey});
201
-        $levels = $this->getLevels();
202
-        foreach ($once as $entry) {
203
-            $levelName = Arr::get($entry, 'level');
204
-            if (!in_array($levelName, $levels)) {
205
-                continue;
206
-            }
207
-            $level = Arr::get(array_flip($levels), $levelName);
208
-            $message = Arr::get($entry, 'message');
209
-            $backtraceLine = Arr::get($entry, 'backtrace');
210
-            $this->log($level, $message, [], $backtraceLine);
211
-        }
212
-        glsr()->{$this->logOnceKey} = [];
213
-    }
214
-
215
-    /**
216
-     * Normal but significant events.
217
-     * @param mixed $message
218
-     * @param array $context
219
-     * @return static
220
-     */
221
-    public function notice($message, array $context = [])
222
-    {
223
-        return $this->log(static::NOTICE, $message, $context);
224
-    }
225
-
226
-    /**
227
-     * @param string $levelName
228
-     * @param string $handle
229
-     * @param mixed $data
230
-     * @return void
231
-     */
232
-    public function once($levelName, $handle, $data)
233
-    {
234
-        $once = Arr::consolidateArray(glsr()->{$this->logOnceKey});
235
-        $filtered = array_filter($once, function ($entry) use ($levelName, $handle) {
236
-            return Arr::get($entry, 'level') == $levelName
237
-                && Arr::get($entry, 'handle') == $handle;
238
-        });
239
-        if (!empty($filtered)) {
240
-            return;
241
-        }
242
-        $once[] = [
243
-            'backtrace' => $this->getBacktraceLineFromData($data),
244
-            'handle' => $handle,
245
-            'level' => $levelName,
246
-            'message' => '[RECURRING] '.$this->getMessageFromData($data),
247
-        ];
248
-        glsr()->{$this->logOnceKey} = $once;
249
-    }
250
-
251
-    /**
252
-     * @return int
253
-     */
254
-    public function size()
255
-    {
256
-        return file_exists($this->file)
257
-            ? filesize($this->file)
258
-            : 0;
259
-    }
260
-
261
-    /**
262
-     * Exceptional occurrences that are not errors
263
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
264
-     * @param mixed $message
265
-     * @param array $context
266
-     * @return static
267
-     */
268
-    public function warning($message, array $context = [])
269
-    {
270
-        return $this->log(static::WARNING, $message, $context);
271
-    }
272
-
273
-    /**
274
-     * @param array $backtrace
275
-     * @param int $index
276
-     * @return string
277
-     */
278
-    protected function buildBacktraceLine($backtrace, $index)
279
-    {
280
-        return sprintf('%s:%s',
281
-            Arr::get($backtrace, $index.'.file'), // realpath
282
-            Arr::get($backtrace, $index.'.line')
283
-        );
284
-    }
285
-
286
-    /**
287
-     * @param string $levelName
288
-     * @param mixed $message
289
-     * @param string $backtraceLine
290
-     * @return string
291
-     */
292
-    protected function buildLogEntry($levelName, $message, $backtraceLine = '')
293
-    {
294
-        return sprintf('[%s] %s [%s] %s',
295
-            current_time('mysql'),
296
-            strtoupper($levelName),
297
-            $backtraceLine,
298
-            $message
299
-        );
300
-    }
301
-
302
-    /**
303
-     * @param int $level
304
-     * @return bool
305
-     */
306
-    protected function canLogEntry($level, $backtraceLine)
307
-    {
308
-        $levelExists = array_key_exists($level, $this->getLevels());
309
-        if (false === strpos($backtraceLine, glsr()->path())) {
310
-            return $levelExists; // ignore level restriction if triggered outside of the plugin
311
-        }
312
-        return $levelExists && $level >= $this->getLevel();
313
-    }
314
-
315
-    /**
316
-     * @return void|string
317
-     */
318
-    protected function getBacktraceLine()
319
-    {
320
-        $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 6);
321
-        $search = array_search('log', glsr_array_column($backtrace, 'function'));
322
-        if (false !== $search) {
323
-            $index = '{closure}' == Arr::get($backtrace, ($search + 2).'.function')
324
-                ? $search + 4
325
-                : $search + 1;
326
-            return $this->buildBacktraceLine($backtrace, $index);
327
-        }
328
-        return 'Unknown';
329
-    }
330
-
331
-    /**
332
-     * @param mixed $data
333
-     * @return string
334
-     */
335
-    protected function getBacktraceLineFromData($data)
336
-    {
337
-        $backtrace = $data instanceof Throwable
338
-            ? $data->getTrace()
339
-            : debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
340
-        return $this->buildBacktraceLine($backtrace, 0);
341
-    }
342
-
343
-    /**
344
-     * @param mixed $data
345
-     * @return string
346
-     */
347
-    protected function getMessageFromData($data)
348
-    {
349
-        return $data instanceof Throwable
350
-            ? $this->normalizeThrowableMessage($data->getMessage())
351
-            : print_r($data, 1);
352
-    }
353
-
354
-    /**
355
-     * Interpolates context values into the message placeholders.
356
-     * @param mixed $message
357
-     * @param array $context
358
-     * @return string
359
-     */
360
-    protected function interpolate($message, $context = [])
361
-    {
362
-        if ($this->isObjectOrArray($message) || !is_array($context)) {
363
-            return print_r($message, true);
364
-        }
365
-        $replace = [];
366
-        foreach ($context as $key => $value) {
367
-            $replace['{'.$key.'}'] = $this->normalizeValue($value);
368
-        }
369
-        return strtr($message, $replace);
370
-    }
371
-
372
-    /**
373
-     * @param mixed $value
374
-     * @return bool
375
-     */
376
-    protected function isObjectOrArray($value)
377
-    {
378
-        return is_object($value) || is_array($value);
379
-    }
380
-
381
-    /**
382
-     * @param string $backtraceLine
383
-     * @return string
384
-     */
385
-    protected function normalizeBacktraceLine($backtraceLine)
386
-    {
387
-        $search = [
388
-            glsr()->path('plugin/'),
389
-            glsr()->path('plugin/', false),
390
-            trailingslashit(glsr()->path()),
391
-            trailingslashit(glsr()->path('', false)),
392
-            WP_CONTENT_DIR,
393
-            ABSPATH,
394
-        ];
395
-        return str_replace(array_unique($search), '', $backtraceLine);
396
-    }
397
-
398
-    /**
399
-     * @param string $message
400
-     * @return string
401
-     */
402
-    protected function normalizeThrowableMessage($message)
403
-    {
404
-        $calledIn = strpos($message, ', called in');
405
-        return false !== $calledIn
406
-            ? substr($message, 0, $calledIn)
407
-            : $message;
408
-    }
409
-
410
-    /**
411
-     * @param mixed $value
412
-     * @return string
413
-     */
414
-    protected function normalizeValue($value)
415
-    {
416
-        if ($value instanceof DateTime) {
417
-            $value = $value->format('Y-m-d H:i:s');
418
-        } elseif ($this->isObjectOrArray($value)) {
419
-            $value = json_encode($value);
420
-        }
421
-        return (string) $value;
422
-    }
423
-
424
-    /**
425
-     * @return void
426
-     */
427
-    protected function reset()
428
-    {
429
-        if ($this->size() <= pow(1024, 2) / 8) {
430
-            return;
431
-        }
432
-        $this->clear();
433
-        file_put_contents(
434
-            $this->file,
435
-            $this->buildLogEntry(
436
-                static::NOTICE,
437
-                __('Console was automatically cleared (128 KB maximum size)', 'site-reviews')
438
-            )
439
-        );
440
-    }
12
+	const DEBUG = 0;      // Detailed debug information
13
+	const INFO = 1;       // Interesting events
14
+	const NOTICE = 2;     // Normal but significant events
15
+	const WARNING = 4;    // Exceptional occurrences that are not errors
16
+	const ERROR = 8;      // Runtime errors that do not require immediate action
17
+	const CRITICAL = 16;  // Critical conditions
18
+	const ALERT = 32;     // Action must be taken immediately
19
+	const EMERGENCY = 64; // System is unusable
20
+
21
+	protected $file;
22
+	protected $log;
23
+	protected $logOnceKey = 'glsr_log_once';
24
+
25
+	public function __construct()
26
+	{
27
+		$this->file = glsr()->path('console.log');
28
+		$this->log = file_exists($this->file)
29
+			? file_get_contents($this->file)
30
+			: '';
31
+		$this->reset();
32
+	}
33
+
34
+	/**
35
+	 * @return string
36
+	 */
37
+	public function __toString()
38
+	{
39
+		return $this->get();
40
+	}
41
+
42
+	/**
43
+	 * Action must be taken immediately
44
+	 * Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.
45
+	 * @param mixed $message
46
+	 * @param array $context
47
+	 * @return static
48
+	 */
49
+	public function alert($message, array $context = [])
50
+	{
51
+		return $this->log(static::ALERT, $message, $context);
52
+	}
53
+
54
+	/**
55
+	 * @return void
56
+	 */
57
+	public function clear()
58
+	{
59
+		$this->log = '';
60
+		file_put_contents($this->file, $this->log);
61
+	}
62
+
63
+	/**
64
+	 * Critical conditions
65
+	 * Example: Application component unavailable, unexpected exception.
66
+	 * @param mixed $message
67
+	 * @param array $context
68
+	 * @return static
69
+	 */
70
+	public function critical($message, array $context = [])
71
+	{
72
+		return $this->log(static::CRITICAL, $message, $context);
73
+	}
74
+
75
+	/**
76
+	 * Detailed debug information.
77
+	 * @param mixed $message
78
+	 * @param array $context
79
+	 * @return static
80
+	 */
81
+	public function debug($message, array $context = [])
82
+	{
83
+		return $this->log(static::DEBUG, $message, $context);
84
+	}
85
+
86
+	/**
87
+	 * System is unusable.
88
+	 * @param mixed $message
89
+	 * @param array $context
90
+	 * @return static
91
+	 */
92
+	public function emergency($message, array $context = [])
93
+	{
94
+		return $this->log(static::EMERGENCY, $message, $context);
95
+	}
96
+
97
+	/**
98
+	 * Runtime errors that do not require immediate action but should typically be logged and monitored.
99
+	 * @param mixed $message
100
+	 * @param array $context
101
+	 * @return static
102
+	 */
103
+	public function error($message, array $context = [])
104
+	{
105
+		return $this->log(static::ERROR, $message, $context);
106
+	}
107
+
108
+	/**
109
+	 * @return string
110
+	 */
111
+	public function get()
112
+	{
113
+		return empty($this->log)
114
+			? __('Console is empty', 'site-reviews')
115
+			: $this->log;
116
+	}
117
+
118
+	/**
119
+	 * @return int
120
+	 */
121
+	public function getLevel()
122
+	{
123
+		return intval(apply_filters('site-reviews/console/level', static::INFO));
124
+	}
125
+
126
+	/**
127
+	 * @return array
128
+	 */
129
+	public function getLevels()
130
+	{
131
+		$constants = (new ReflectionClass(__CLASS__))->getConstants();
132
+		return array_map('strtolower', array_flip($constants));
133
+	}
134
+
135
+	/**
136
+	 * @return string
137
+	 */
138
+	public function humanLevel()
139
+	{
140
+		$level = $this->getLevel();
141
+		return sprintf('%s (%d)', strtoupper(Arr::get($this->getLevels(), $level, 'unknown')), $level);
142
+	}
143
+
144
+	/**
145
+	 * @param string|null $valueIfEmpty
146
+	 * @return string
147
+	 */
148
+	public function humanSize($valueIfEmpty = null)
149
+	{
150
+		$bytes = $this->size();
151
+		if (empty($bytes) && is_string($valueIfEmpty)) {
152
+			return $valueIfEmpty;
153
+		}
154
+		$exponent = floor(log(max($bytes, 1), 1024));
155
+		return round($bytes / pow(1024, $exponent), 2).' '.['bytes', 'KB', 'MB', 'GB'][$exponent];
156
+	}
157
+
158
+	/**
159
+	 * Interesting events
160
+	 * Example: User logs in, SQL logs.
161
+	 * @param mixed $message
162
+	 * @param array $context
163
+	 * @return static
164
+	 */
165
+	public function info($message, array $context = [])
166
+	{
167
+		return $this->log(static::INFO, $message, $context);
168
+	}
169
+
170
+	/**
171
+	 * @param int $level
172
+	 * @param mixed $message
173
+	 * @param array $context
174
+	 * @param string $backtraceLine
175
+	 * @return static
176
+	 */
177
+	public function log($level, $message, $context = [], $backtraceLine = '')
178
+	{
179
+		if (empty($backtraceLine)) {
180
+			$backtraceLine = $this->getBacktraceLine();
181
+		}
182
+		if ($this->canLogEntry($level, $backtraceLine)) {
183
+			$levelName = Arr::get($this->getLevels(), $level);
184
+			$context = Arr::consolidateArray($context);
185
+			$backtraceLine = $this->normalizeBacktraceLine($backtraceLine);
186
+			$message = $this->interpolate($message, $context);
187
+			$entry = $this->buildLogEntry($levelName, $message, $backtraceLine);
188
+			file_put_contents($this->file, $entry.PHP_EOL, FILE_APPEND | LOCK_EX);
189
+			apply_filters('console', $message, $levelName, $backtraceLine); // Show in Blackbar plugin if installed
190
+			$this->reset();
191
+		}
192
+		return $this;
193
+	}
194
+
195
+	/**
196
+	 * @return void
197
+	 */
198
+	public function logOnce()
199
+	{
200
+		$once = Arr::consolidateArray(glsr()->{$this->logOnceKey});
201
+		$levels = $this->getLevels();
202
+		foreach ($once as $entry) {
203
+			$levelName = Arr::get($entry, 'level');
204
+			if (!in_array($levelName, $levels)) {
205
+				continue;
206
+			}
207
+			$level = Arr::get(array_flip($levels), $levelName);
208
+			$message = Arr::get($entry, 'message');
209
+			$backtraceLine = Arr::get($entry, 'backtrace');
210
+			$this->log($level, $message, [], $backtraceLine);
211
+		}
212
+		glsr()->{$this->logOnceKey} = [];
213
+	}
214
+
215
+	/**
216
+	 * Normal but significant events.
217
+	 * @param mixed $message
218
+	 * @param array $context
219
+	 * @return static
220
+	 */
221
+	public function notice($message, array $context = [])
222
+	{
223
+		return $this->log(static::NOTICE, $message, $context);
224
+	}
225
+
226
+	/**
227
+	 * @param string $levelName
228
+	 * @param string $handle
229
+	 * @param mixed $data
230
+	 * @return void
231
+	 */
232
+	public function once($levelName, $handle, $data)
233
+	{
234
+		$once = Arr::consolidateArray(glsr()->{$this->logOnceKey});
235
+		$filtered = array_filter($once, function ($entry) use ($levelName, $handle) {
236
+			return Arr::get($entry, 'level') == $levelName
237
+				&& Arr::get($entry, 'handle') == $handle;
238
+		});
239
+		if (!empty($filtered)) {
240
+			return;
241
+		}
242
+		$once[] = [
243
+			'backtrace' => $this->getBacktraceLineFromData($data),
244
+			'handle' => $handle,
245
+			'level' => $levelName,
246
+			'message' => '[RECURRING] '.$this->getMessageFromData($data),
247
+		];
248
+		glsr()->{$this->logOnceKey} = $once;
249
+	}
250
+
251
+	/**
252
+	 * @return int
253
+	 */
254
+	public function size()
255
+	{
256
+		return file_exists($this->file)
257
+			? filesize($this->file)
258
+			: 0;
259
+	}
260
+
261
+	/**
262
+	 * Exceptional occurrences that are not errors
263
+	 * Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
264
+	 * @param mixed $message
265
+	 * @param array $context
266
+	 * @return static
267
+	 */
268
+	public function warning($message, array $context = [])
269
+	{
270
+		return $this->log(static::WARNING, $message, $context);
271
+	}
272
+
273
+	/**
274
+	 * @param array $backtrace
275
+	 * @param int $index
276
+	 * @return string
277
+	 */
278
+	protected function buildBacktraceLine($backtrace, $index)
279
+	{
280
+		return sprintf('%s:%s',
281
+			Arr::get($backtrace, $index.'.file'), // realpath
282
+			Arr::get($backtrace, $index.'.line')
283
+		);
284
+	}
285
+
286
+	/**
287
+	 * @param string $levelName
288
+	 * @param mixed $message
289
+	 * @param string $backtraceLine
290
+	 * @return string
291
+	 */
292
+	protected function buildLogEntry($levelName, $message, $backtraceLine = '')
293
+	{
294
+		return sprintf('[%s] %s [%s] %s',
295
+			current_time('mysql'),
296
+			strtoupper($levelName),
297
+			$backtraceLine,
298
+			$message
299
+		);
300
+	}
301
+
302
+	/**
303
+	 * @param int $level
304
+	 * @return bool
305
+	 */
306
+	protected function canLogEntry($level, $backtraceLine)
307
+	{
308
+		$levelExists = array_key_exists($level, $this->getLevels());
309
+		if (false === strpos($backtraceLine, glsr()->path())) {
310
+			return $levelExists; // ignore level restriction if triggered outside of the plugin
311
+		}
312
+		return $levelExists && $level >= $this->getLevel();
313
+	}
314
+
315
+	/**
316
+	 * @return void|string
317
+	 */
318
+	protected function getBacktraceLine()
319
+	{
320
+		$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 6);
321
+		$search = array_search('log', glsr_array_column($backtrace, 'function'));
322
+		if (false !== $search) {
323
+			$index = '{closure}' == Arr::get($backtrace, ($search + 2).'.function')
324
+				? $search + 4
325
+				: $search + 1;
326
+			return $this->buildBacktraceLine($backtrace, $index);
327
+		}
328
+		return 'Unknown';
329
+	}
330
+
331
+	/**
332
+	 * @param mixed $data
333
+	 * @return string
334
+	 */
335
+	protected function getBacktraceLineFromData($data)
336
+	{
337
+		$backtrace = $data instanceof Throwable
338
+			? $data->getTrace()
339
+			: debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
340
+		return $this->buildBacktraceLine($backtrace, 0);
341
+	}
342
+
343
+	/**
344
+	 * @param mixed $data
345
+	 * @return string
346
+	 */
347
+	protected function getMessageFromData($data)
348
+	{
349
+		return $data instanceof Throwable
350
+			? $this->normalizeThrowableMessage($data->getMessage())
351
+			: print_r($data, 1);
352
+	}
353
+
354
+	/**
355
+	 * Interpolates context values into the message placeholders.
356
+	 * @param mixed $message
357
+	 * @param array $context
358
+	 * @return string
359
+	 */
360
+	protected function interpolate($message, $context = [])
361
+	{
362
+		if ($this->isObjectOrArray($message) || !is_array($context)) {
363
+			return print_r($message, true);
364
+		}
365
+		$replace = [];
366
+		foreach ($context as $key => $value) {
367
+			$replace['{'.$key.'}'] = $this->normalizeValue($value);
368
+		}
369
+		return strtr($message, $replace);
370
+	}
371
+
372
+	/**
373
+	 * @param mixed $value
374
+	 * @return bool
375
+	 */
376
+	protected function isObjectOrArray($value)
377
+	{
378
+		return is_object($value) || is_array($value);
379
+	}
380
+
381
+	/**
382
+	 * @param string $backtraceLine
383
+	 * @return string
384
+	 */
385
+	protected function normalizeBacktraceLine($backtraceLine)
386
+	{
387
+		$search = [
388
+			glsr()->path('plugin/'),
389
+			glsr()->path('plugin/', false),
390
+			trailingslashit(glsr()->path()),
391
+			trailingslashit(glsr()->path('', false)),
392
+			WP_CONTENT_DIR,
393
+			ABSPATH,
394
+		];
395
+		return str_replace(array_unique($search), '', $backtraceLine);
396
+	}
397
+
398
+	/**
399
+	 * @param string $message
400
+	 * @return string
401
+	 */
402
+	protected function normalizeThrowableMessage($message)
403
+	{
404
+		$calledIn = strpos($message, ', called in');
405
+		return false !== $calledIn
406
+			? substr($message, 0, $calledIn)
407
+			: $message;
408
+	}
409
+
410
+	/**
411
+	 * @param mixed $value
412
+	 * @return string
413
+	 */
414
+	protected function normalizeValue($value)
415
+	{
416
+		if ($value instanceof DateTime) {
417
+			$value = $value->format('Y-m-d H:i:s');
418
+		} elseif ($this->isObjectOrArray($value)) {
419
+			$value = json_encode($value);
420
+		}
421
+		return (string) $value;
422
+	}
423
+
424
+	/**
425
+	 * @return void
426
+	 */
427
+	protected function reset()
428
+	{
429
+		if ($this->size() <= pow(1024, 2) / 8) {
430
+			return;
431
+		}
432
+		$this->clear();
433
+		file_put_contents(
434
+			$this->file,
435
+			$this->buildLogEntry(
436
+				static::NOTICE,
437
+				__('Console was automatically cleared (128 KB maximum size)', 'site-reviews')
438
+			)
439
+		);
440
+	}
441 441
 }
Please login to merge, or discard this patch.
Spacing   +111 added lines, -111 removed lines patch added patch discarded remove patch
@@ -9,13 +9,13 @@  discard block
 block discarded – undo
9 9
 
10 10
 class Console
11 11
 {
12
-    const DEBUG = 0;      // Detailed debug information
13
-    const INFO = 1;       // Interesting events
14
-    const NOTICE = 2;     // Normal but significant events
15
-    const WARNING = 4;    // Exceptional occurrences that are not errors
16
-    const ERROR = 8;      // Runtime errors that do not require immediate action
17
-    const CRITICAL = 16;  // Critical conditions
18
-    const ALERT = 32;     // Action must be taken immediately
12
+    const DEBUG = 0; // Detailed debug information
13
+    const INFO = 1; // Interesting events
14
+    const NOTICE = 2; // Normal but significant events
15
+    const WARNING = 4; // Exceptional occurrences that are not errors
16
+    const ERROR = 8; // Runtime errors that do not require immediate action
17
+    const CRITICAL = 16; // Critical conditions
18
+    const ALERT = 32; // Action must be taken immediately
19 19
     const EMERGENCY = 64; // System is unusable
20 20
 
21 21
     protected $file;
@@ -24,9 +24,9 @@  discard block
 block discarded – undo
24 24
 
25 25
     public function __construct()
26 26
     {
27
-        $this->file = glsr()->path('console.log');
28
-        $this->log = file_exists($this->file)
29
-            ? file_get_contents($this->file)
27
+        $this->file = glsr()->path( 'console.log' );
28
+        $this->log = file_exists( $this->file )
29
+            ? file_get_contents( $this->file )
30 30
             : '';
31 31
         $this->reset();
32 32
     }
@@ -46,9 +46,9 @@  discard block
 block discarded – undo
46 46
      * @param array $context
47 47
      * @return static
48 48
      */
49
-    public function alert($message, array $context = [])
49
+    public function alert( $message, array $context = [] )
50 50
     {
51
-        return $this->log(static::ALERT, $message, $context);
51
+        return $this->log( static::ALERT, $message, $context );
52 52
     }
53 53
 
54 54
     /**
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
     public function clear()
58 58
     {
59 59
         $this->log = '';
60
-        file_put_contents($this->file, $this->log);
60
+        file_put_contents( $this->file, $this->log );
61 61
     }
62 62
 
63 63
     /**
@@ -67,9 +67,9 @@  discard block
 block discarded – undo
67 67
      * @param array $context
68 68
      * @return static
69 69
      */
70
-    public function critical($message, array $context = [])
70
+    public function critical( $message, array $context = [] )
71 71
     {
72
-        return $this->log(static::CRITICAL, $message, $context);
72
+        return $this->log( static::CRITICAL, $message, $context );
73 73
     }
74 74
 
75 75
     /**
@@ -78,9 +78,9 @@  discard block
 block discarded – undo
78 78
      * @param array $context
79 79
      * @return static
80 80
      */
81
-    public function debug($message, array $context = [])
81
+    public function debug( $message, array $context = [] )
82 82
     {
83
-        return $this->log(static::DEBUG, $message, $context);
83
+        return $this->log( static::DEBUG, $message, $context );
84 84
     }
85 85
 
86 86
     /**
@@ -89,9 +89,9 @@  discard block
 block discarded – undo
89 89
      * @param array $context
90 90
      * @return static
91 91
      */
92
-    public function emergency($message, array $context = [])
92
+    public function emergency( $message, array $context = [] )
93 93
     {
94
-        return $this->log(static::EMERGENCY, $message, $context);
94
+        return $this->log( static::EMERGENCY, $message, $context );
95 95
     }
96 96
 
97 97
     /**
@@ -100,9 +100,9 @@  discard block
 block discarded – undo
100 100
      * @param array $context
101 101
      * @return static
102 102
      */
103
-    public function error($message, array $context = [])
103
+    public function error( $message, array $context = [] )
104 104
     {
105
-        return $this->log(static::ERROR, $message, $context);
105
+        return $this->log( static::ERROR, $message, $context );
106 106
     }
107 107
 
108 108
     /**
@@ -111,7 +111,7 @@  discard block
 block discarded – undo
111 111
     public function get()
112 112
     {
113 113
         return empty($this->log)
114
-            ? __('Console is empty', 'site-reviews')
114
+            ? __( 'Console is empty', 'site-reviews' )
115 115
             : $this->log;
116 116
     }
117 117
 
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
      */
121 121
     public function getLevel()
122 122
     {
123
-        return intval(apply_filters('site-reviews/console/level', static::INFO));
123
+        return intval( apply_filters( 'site-reviews/console/level', static::INFO ) );
124 124
     }
125 125
 
126 126
     /**
@@ -128,8 +128,8 @@  discard block
 block discarded – undo
128 128
      */
129 129
     public function getLevels()
130 130
     {
131
-        $constants = (new ReflectionClass(__CLASS__))->getConstants();
132
-        return array_map('strtolower', array_flip($constants));
131
+        $constants = (new ReflectionClass( __CLASS__ ))->getConstants();
132
+        return array_map( 'strtolower', array_flip( $constants ) );
133 133
     }
134 134
 
135 135
     /**
@@ -138,21 +138,21 @@  discard block
 block discarded – undo
138 138
     public function humanLevel()
139 139
     {
140 140
         $level = $this->getLevel();
141
-        return sprintf('%s (%d)', strtoupper(Arr::get($this->getLevels(), $level, 'unknown')), $level);
141
+        return sprintf( '%s (%d)', strtoupper( Arr::get( $this->getLevels(), $level, 'unknown' ) ), $level );
142 142
     }
143 143
 
144 144
     /**
145 145
      * @param string|null $valueIfEmpty
146 146
      * @return string
147 147
      */
148
-    public function humanSize($valueIfEmpty = null)
148
+    public function humanSize( $valueIfEmpty = null )
149 149
     {
150 150
         $bytes = $this->size();
151
-        if (empty($bytes) && is_string($valueIfEmpty)) {
151
+        if( empty($bytes) && is_string( $valueIfEmpty ) ) {
152 152
             return $valueIfEmpty;
153 153
         }
154
-        $exponent = floor(log(max($bytes, 1), 1024));
155
-        return round($bytes / pow(1024, $exponent), 2).' '.['bytes', 'KB', 'MB', 'GB'][$exponent];
154
+        $exponent = floor( log( max( $bytes, 1 ), 1024 ) );
155
+        return round( $bytes / pow( 1024, $exponent ), 2 ).' '.['bytes', 'KB', 'MB', 'GB'][$exponent];
156 156
     }
157 157
 
158 158
     /**
@@ -162,9 +162,9 @@  discard block
 block discarded – undo
162 162
      * @param array $context
163 163
      * @return static
164 164
      */
165
-    public function info($message, array $context = [])
165
+    public function info( $message, array $context = [] )
166 166
     {
167
-        return $this->log(static::INFO, $message, $context);
167
+        return $this->log( static::INFO, $message, $context );
168 168
     }
169 169
 
170 170
     /**
@@ -174,19 +174,19 @@  discard block
 block discarded – undo
174 174
      * @param string $backtraceLine
175 175
      * @return static
176 176
      */
177
-    public function log($level, $message, $context = [], $backtraceLine = '')
177
+    public function log( $level, $message, $context = [], $backtraceLine = '' )
178 178
     {
179
-        if (empty($backtraceLine)) {
179
+        if( empty($backtraceLine) ) {
180 180
             $backtraceLine = $this->getBacktraceLine();
181 181
         }
182
-        if ($this->canLogEntry($level, $backtraceLine)) {
183
-            $levelName = Arr::get($this->getLevels(), $level);
184
-            $context = Arr::consolidateArray($context);
185
-            $backtraceLine = $this->normalizeBacktraceLine($backtraceLine);
186
-            $message = $this->interpolate($message, $context);
187
-            $entry = $this->buildLogEntry($levelName, $message, $backtraceLine);
188
-            file_put_contents($this->file, $entry.PHP_EOL, FILE_APPEND | LOCK_EX);
189
-            apply_filters('console', $message, $levelName, $backtraceLine); // Show in Blackbar plugin if installed
182
+        if( $this->canLogEntry( $level, $backtraceLine ) ) {
183
+            $levelName = Arr::get( $this->getLevels(), $level );
184
+            $context = Arr::consolidateArray( $context );
185
+            $backtraceLine = $this->normalizeBacktraceLine( $backtraceLine );
186
+            $message = $this->interpolate( $message, $context );
187
+            $entry = $this->buildLogEntry( $levelName, $message, $backtraceLine );
188
+            file_put_contents( $this->file, $entry.PHP_EOL, FILE_APPEND | LOCK_EX );
189
+            apply_filters( 'console', $message, $levelName, $backtraceLine ); // Show in Blackbar plugin if installed
190 190
             $this->reset();
191 191
         }
192 192
         return $this;
@@ -197,17 +197,17 @@  discard block
 block discarded – undo
197 197
      */
198 198
     public function logOnce()
199 199
     {
200
-        $once = Arr::consolidateArray(glsr()->{$this->logOnceKey});
200
+        $once = Arr::consolidateArray( glsr()->{$this->logOnceKey});
201 201
         $levels = $this->getLevels();
202
-        foreach ($once as $entry) {
203
-            $levelName = Arr::get($entry, 'level');
204
-            if (!in_array($levelName, $levels)) {
202
+        foreach( $once as $entry ) {
203
+            $levelName = Arr::get( $entry, 'level' );
204
+            if( !in_array( $levelName, $levels ) ) {
205 205
                 continue;
206 206
             }
207
-            $level = Arr::get(array_flip($levels), $levelName);
208
-            $message = Arr::get($entry, 'message');
209
-            $backtraceLine = Arr::get($entry, 'backtrace');
210
-            $this->log($level, $message, [], $backtraceLine);
207
+            $level = Arr::get( array_flip( $levels ), $levelName );
208
+            $message = Arr::get( $entry, 'message' );
209
+            $backtraceLine = Arr::get( $entry, 'backtrace' );
210
+            $this->log( $level, $message, [], $backtraceLine );
211 211
         }
212 212
         glsr()->{$this->logOnceKey} = [];
213 213
     }
@@ -218,9 +218,9 @@  discard block
 block discarded – undo
218 218
      * @param array $context
219 219
      * @return static
220 220
      */
221
-    public function notice($message, array $context = [])
221
+    public function notice( $message, array $context = [] )
222 222
     {
223
-        return $this->log(static::NOTICE, $message, $context);
223
+        return $this->log( static::NOTICE, $message, $context );
224 224
     }
225 225
 
226 226
     /**
@@ -229,21 +229,21 @@  discard block
 block discarded – undo
229 229
      * @param mixed $data
230 230
      * @return void
231 231
      */
232
-    public function once($levelName, $handle, $data)
232
+    public function once( $levelName, $handle, $data )
233 233
     {
234
-        $once = Arr::consolidateArray(glsr()->{$this->logOnceKey});
235
-        $filtered = array_filter($once, function ($entry) use ($levelName, $handle) {
236
-            return Arr::get($entry, 'level') == $levelName
237
-                && Arr::get($entry, 'handle') == $handle;
234
+        $once = Arr::consolidateArray( glsr()->{$this->logOnceKey});
235
+        $filtered = array_filter( $once, function( $entry ) use ($levelName, $handle) {
236
+            return Arr::get( $entry, 'level' ) == $levelName
237
+                && Arr::get( $entry, 'handle' ) == $handle;
238 238
         });
239
-        if (!empty($filtered)) {
239
+        if( !empty($filtered) ) {
240 240
             return;
241 241
         }
242 242
         $once[] = [
243
-            'backtrace' => $this->getBacktraceLineFromData($data),
243
+            'backtrace' => $this->getBacktraceLineFromData( $data ),
244 244
             'handle' => $handle,
245 245
             'level' => $levelName,
246
-            'message' => '[RECURRING] '.$this->getMessageFromData($data),
246
+            'message' => '[RECURRING] '.$this->getMessageFromData( $data ),
247 247
         ];
248 248
         glsr()->{$this->logOnceKey} = $once;
249 249
     }
@@ -253,8 +253,8 @@  discard block
 block discarded – undo
253 253
      */
254 254
     public function size()
255 255
     {
256
-        return file_exists($this->file)
257
-            ? filesize($this->file)
256
+        return file_exists( $this->file )
257
+            ? filesize( $this->file )
258 258
             : 0;
259 259
     }
260 260
 
@@ -265,9 +265,9 @@  discard block
 block discarded – undo
265 265
      * @param array $context
266 266
      * @return static
267 267
      */
268
-    public function warning($message, array $context = [])
268
+    public function warning( $message, array $context = [] )
269 269
     {
270
-        return $this->log(static::WARNING, $message, $context);
270
+        return $this->log( static::WARNING, $message, $context );
271 271
     }
272 272
 
273 273
     /**
@@ -275,11 +275,11 @@  discard block
 block discarded – undo
275 275
      * @param int $index
276 276
      * @return string
277 277
      */
278
-    protected function buildBacktraceLine($backtrace, $index)
278
+    protected function buildBacktraceLine( $backtrace, $index )
279 279
     {
280
-        return sprintf('%s:%s',
281
-            Arr::get($backtrace, $index.'.file'), // realpath
282
-            Arr::get($backtrace, $index.'.line')
280
+        return sprintf( '%s:%s',
281
+            Arr::get( $backtrace, $index.'.file' ), // realpath
282
+            Arr::get( $backtrace, $index.'.line' )
283 283
         );
284 284
     }
285 285
 
@@ -289,11 +289,11 @@  discard block
 block discarded – undo
289 289
      * @param string $backtraceLine
290 290
      * @return string
291 291
      */
292
-    protected function buildLogEntry($levelName, $message, $backtraceLine = '')
292
+    protected function buildLogEntry( $levelName, $message, $backtraceLine = '' )
293 293
     {
294
-        return sprintf('[%s] %s [%s] %s',
295
-            current_time('mysql'),
296
-            strtoupper($levelName),
294
+        return sprintf( '[%s] %s [%s] %s',
295
+            current_time( 'mysql' ),
296
+            strtoupper( $levelName ),
297 297
             $backtraceLine,
298 298
             $message
299 299
         );
@@ -303,10 +303,10 @@  discard block
 block discarded – undo
303 303
      * @param int $level
304 304
      * @return bool
305 305
      */
306
-    protected function canLogEntry($level, $backtraceLine)
306
+    protected function canLogEntry( $level, $backtraceLine )
307 307
     {
308
-        $levelExists = array_key_exists($level, $this->getLevels());
309
-        if (false === strpos($backtraceLine, glsr()->path())) {
308
+        $levelExists = array_key_exists( $level, $this->getLevels() );
309
+        if( false === strpos( $backtraceLine, glsr()->path() ) ) {
310 310
             return $levelExists; // ignore level restriction if triggered outside of the plugin
311 311
         }
312 312
         return $levelExists && $level >= $this->getLevel();
@@ -317,13 +317,13 @@  discard block
 block discarded – undo
317 317
      */
318 318
     protected function getBacktraceLine()
319 319
     {
320
-        $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 6);
321
-        $search = array_search('log', glsr_array_column($backtrace, 'function'));
322
-        if (false !== $search) {
323
-            $index = '{closure}' == Arr::get($backtrace, ($search + 2).'.function')
320
+        $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS, 6 );
321
+        $search = array_search( 'log', glsr_array_column( $backtrace, 'function' ) );
322
+        if( false !== $search ) {
323
+            $index = '{closure}' == Arr::get( $backtrace, ($search + 2).'.function' )
324 324
                 ? $search + 4
325 325
                 : $search + 1;
326
-            return $this->buildBacktraceLine($backtrace, $index);
326
+            return $this->buildBacktraceLine( $backtrace, $index );
327 327
         }
328 328
         return 'Unknown';
329 329
     }
@@ -332,23 +332,23 @@  discard block
 block discarded – undo
332 332
      * @param mixed $data
333 333
      * @return string
334 334
      */
335
-    protected function getBacktraceLineFromData($data)
335
+    protected function getBacktraceLineFromData( $data )
336 336
     {
337 337
         $backtrace = $data instanceof Throwable
338 338
             ? $data->getTrace()
339
-            : debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
340
-        return $this->buildBacktraceLine($backtrace, 0);
339
+            : debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS, 1 );
340
+        return $this->buildBacktraceLine( $backtrace, 0 );
341 341
     }
342 342
 
343 343
     /**
344 344
      * @param mixed $data
345 345
      * @return string
346 346
      */
347
-    protected function getMessageFromData($data)
347
+    protected function getMessageFromData( $data )
348 348
     {
349 349
         return $data instanceof Throwable
350
-            ? $this->normalizeThrowableMessage($data->getMessage())
351
-            : print_r($data, 1);
350
+            ? $this->normalizeThrowableMessage( $data->getMessage() )
351
+            : print_r( $data, 1 );
352 352
     }
353 353
 
354 354
     /**
@@ -357,53 +357,53 @@  discard block
 block discarded – undo
357 357
      * @param array $context
358 358
      * @return string
359 359
      */
360
-    protected function interpolate($message, $context = [])
360
+    protected function interpolate( $message, $context = [] )
361 361
     {
362
-        if ($this->isObjectOrArray($message) || !is_array($context)) {
363
-            return print_r($message, true);
362
+        if( $this->isObjectOrArray( $message ) || !is_array( $context ) ) {
363
+            return print_r( $message, true );
364 364
         }
365 365
         $replace = [];
366
-        foreach ($context as $key => $value) {
367
-            $replace['{'.$key.'}'] = $this->normalizeValue($value);
366
+        foreach( $context as $key => $value ) {
367
+            $replace['{'.$key.'}'] = $this->normalizeValue( $value );
368 368
         }
369
-        return strtr($message, $replace);
369
+        return strtr( $message, $replace );
370 370
     }
371 371
 
372 372
     /**
373 373
      * @param mixed $value
374 374
      * @return bool
375 375
      */
376
-    protected function isObjectOrArray($value)
376
+    protected function isObjectOrArray( $value )
377 377
     {
378
-        return is_object($value) || is_array($value);
378
+        return is_object( $value ) || is_array( $value );
379 379
     }
380 380
 
381 381
     /**
382 382
      * @param string $backtraceLine
383 383
      * @return string
384 384
      */
385
-    protected function normalizeBacktraceLine($backtraceLine)
385
+    protected function normalizeBacktraceLine( $backtraceLine )
386 386
     {
387 387
         $search = [
388
-            glsr()->path('plugin/'),
389
-            glsr()->path('plugin/', false),
390
-            trailingslashit(glsr()->path()),
391
-            trailingslashit(glsr()->path('', false)),
388
+            glsr()->path( 'plugin/' ),
389
+            glsr()->path( 'plugin/', false ),
390
+            trailingslashit( glsr()->path() ),
391
+            trailingslashit( glsr()->path( '', false ) ),
392 392
             WP_CONTENT_DIR,
393 393
             ABSPATH,
394 394
         ];
395
-        return str_replace(array_unique($search), '', $backtraceLine);
395
+        return str_replace( array_unique( $search ), '', $backtraceLine );
396 396
     }
397 397
 
398 398
     /**
399 399
      * @param string $message
400 400
      * @return string
401 401
      */
402
-    protected function normalizeThrowableMessage($message)
402
+    protected function normalizeThrowableMessage( $message )
403 403
     {
404
-        $calledIn = strpos($message, ', called in');
404
+        $calledIn = strpos( $message, ', called in' );
405 405
         return false !== $calledIn
406
-            ? substr($message, 0, $calledIn)
406
+            ? substr( $message, 0, $calledIn )
407 407
             : $message;
408 408
     }
409 409
 
@@ -411,14 +411,14 @@  discard block
 block discarded – undo
411 411
      * @param mixed $value
412 412
      * @return string
413 413
      */
414
-    protected function normalizeValue($value)
414
+    protected function normalizeValue( $value )
415 415
     {
416
-        if ($value instanceof DateTime) {
417
-            $value = $value->format('Y-m-d H:i:s');
418
-        } elseif ($this->isObjectOrArray($value)) {
419
-            $value = json_encode($value);
416
+        if( $value instanceof DateTime ) {
417
+            $value = $value->format( 'Y-m-d H:i:s' );
418
+        } elseif( $this->isObjectOrArray( $value ) ) {
419
+            $value = json_encode( $value );
420 420
         }
421
-        return (string) $value;
421
+        return (string)$value;
422 422
     }
423 423
 
424 424
     /**
@@ -426,7 +426,7 @@  discard block
 block discarded – undo
426 426
      */
427 427
     protected function reset()
428 428
     {
429
-        if ($this->size() <= pow(1024, 2) / 8) {
429
+        if( $this->size() <= pow( 1024, 2 ) / 8 ) {
430 430
             return;
431 431
         }
432 432
         $this->clear();
@@ -434,7 +434,7 @@  discard block
 block discarded – undo
434 434
             $this->file,
435 435
             $this->buildLogEntry(
436 436
                 static::NOTICE,
437
-                __('Console was automatically cleared (128 KB maximum size)', 'site-reviews')
437
+                __( 'Console was automatically cleared (128 KB maximum size)', 'site-reviews' )
438 438
             )
439 439
         );
440 440
     }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Thing.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -19,12 +19,12 @@
 block discarded – undo
19 19
  */
20 20
 class Thing extends BaseType
21 21
 {
22
-    /**
23
-     * @var array
24
-     * @see http://schema.org/{property_name}
25
-     */
26
-    public $allowed = [
27
-        'additionalType', 'alternateName', 'description', 'disambiguatingDescription', 'identifier',
28
-        'image', 'mainEntityOfPage', 'name', 'potentialAction', 'sameAs', 'url',
29
-    ];
22
+	/**
23
+	 * @var array
24
+	 * @see http://schema.org/{property_name}
25
+	 */
26
+	public $allowed = [
27
+		'additionalType', 'alternateName', 'description', 'disambiguatingDescription', 'identifier',
28
+		'image', 'mainEntityOfPage', 'name', 'potentialAction', 'sameAs', 'url',
29
+	];
30 30
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/UnknownType.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -4,19 +4,19 @@
 block discarded – undo
4 4
 
5 5
 class UnknownType extends BaseType
6 6
 {
7
-    /**
8
-     * @var array
9
-     * @see http://schema.org/{property_name}
10
-     */
11
-    public $allowed = [
12
-        'aggregateRating',
13
-    ];
7
+	/**
8
+	 * @var array
9
+	 * @see http://schema.org/{property_name}
10
+	 */
11
+	public $allowed = [
12
+		'aggregateRating',
13
+	];
14 14
 
15
-    /**
16
-     * @var array
17
-     * @see http://schema.org/{property_name}
18
-     */
19
-    public $parents = [
20
-        'Thing',
21
-    ];
15
+	/**
16
+	 * @var array
17
+	 * @see http://schema.org/{property_name}
18
+	 */
19
+	public $parents = [
20
+		'Thing',
21
+	];
22 22
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Type.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -4,22 +4,22 @@
 block discarded – undo
4 4
 
5 5
 interface Type
6 6
 {
7
-    /**
8
-     * Return an array representation of the type. If the array contains child types,
9
-     * their context needs to be stripped if it's the same.
10
-     * @return array
11
-     */
12
-    public function toArray();
7
+	/**
8
+	 * Return an array representation of the type. If the array contains child types,
9
+	 * their context needs to be stripped if it's the same.
10
+	 * @return array
11
+	 */
12
+	public function toArray();
13 13
 
14
-    /**
15
-     * Create a json-ld script tag for this type, built from the data that `toArray` returns.
16
-     * @return string
17
-     */
18
-    public function toScript();
14
+	/**
15
+	 * Create a json-ld script tag for this type, built from the data that `toArray` returns.
16
+	 * @return string
17
+	 */
18
+	public function toScript();
19 19
 
20
-    /**
21
-     * Create a json-ld script tag for this type, built from the data that `toArray` returns.
22
-     * @return string
23
-     */
24
-    public function __toString();
20
+	/**
21
+	 * Create a json-ld script tag for this type, built from the data that `toArray` returns.
22
+	 * @return string
23
+	 */
24
+	public function __toString();
25 25
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Organization.php 1 patch
Indentation   +162 added lines, -162 removed lines patch added patch discarded remove patch
@@ -57,166 +57,166 @@
 block discarded – undo
57 57
  */
58 58
 class Organization extends BaseType
59 59
 {
60
-    /**
61
-     * The schema.org Actions mechanism benefited from extensive discussions across the Web
62
-     * standards community around W3C, in particular from the [Hydra project](http://purl.org/hydra/)
63
-     * community group.
64
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_ActionCollabClass
65
-     */
66
-    const ActionCollabClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_ActionCollabClass';
67
-
68
-    /**
69
-     * This element is based on the work of the Automotive Ontology Working Group,
70
-     * see [www.automotive-ontology.org](http://www.automotive-ontology.org) for details.
71
-     * Many class and property definitions are inspired by or based on abstracts from Wikipedia,
72
-     * the free encyclopedia.
73
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Automotive_Ontology_Working_Group
74
-     */
75
-    const AutomotiveOntologyWGClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Automotive_Ontology_Working_Group';
76
-
77
-    /**
78
-     * The W3C [Schema Bib Extend](http://www.w3.org/community/schemabibex/) (BibEx) group led the
79
-     * work to improve schema.org for bibliographic information, including terms for periodicals,
80
-     * articles and multi-volume works. The design was inspired in places (e.g. [[pageStart]],
81
-     * [[pageEnd]], [[pagination]]) by the [Bibliographic Ontology](http://bibliontology.com/),
82
-     * 'bibo'.
83
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex
84
-     */
85
-    const BibExTerm = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex';
86
-
87
-    /**
88
-     * This class is based upon W3C DCAT work, and benefits from collaboration around the DCAT, ADMS
89
-     * and VoID vocabularies. See http://www.w3.org/wiki/WebSchemas/Datasets for full details and
90
-     * mappings.
91
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_DatasetClass
92
-     */
93
-    const DatasetClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_DatasetClass';
94
-
95
-    /**
96
-     * This element is based on the work of the Financial Industry Business Ontology project (see
97
-     * [http://www.fibo.org/schema](http://www.fibo.org/schema) for details), in support of the W3C
98
-     * Financial Industry Business Ontology Community Group
99
-     * ([http://www.fibo.org/community](http://www.fibo.org/community)). Many class and property
100
-     * definitions are inspired by or based on [http://www.fibo.org](http://www.fibo.org).
101
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#FIBO
102
-     */
103
-    const FIBO = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#FIBO';
104
-
105
-    /**
106
-     * The implementation and use of Legal Entity Identifier (LEI) is supported by Global Legal
107
-     * Entity Identifier Foundation [https://www.gleif.org](https://www.gleif.org).
108
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#GLEIF
109
-     */
110
-    const GLEIF = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#GLEIF';
111
-
112
-    /**
113
-     * This class is derived from the GoodRelations Vocabulary for E-Commerce, created by Martin
114
-     * Hepp. GoodRelations is a data model for sharing e-commerce data on the Web that can be
115
-     * expressed in a variety of syntaxes, including RDFa and HTML5 Microdata. More information
116
-     * about GoodRelations can be found at
117
-     * [http://purl.org/goodrelations/](http://purl.org/goodrelations/).
118
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsClass
119
-     */
120
-    const GoodRelationsClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsClass';
121
-
122
-    /**
123
-     * This term [uses](http://blog.schema.org/2012/11/good-relations-and-schemaorg.html)
124
-     * terminology from the GoodRelations Vocabulary for E-Commerce, created by Martin Hepp.
125
-     * GoodRelations is a data model for sharing e-commerce data on the Web. More information about
126
-     * GoodRelations can be found at
127
-     * [http://purl.org/goodrelations/](http://purl.org/goodrelations/).
128
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsTerms
129
-     */
130
-    const GoodRelationsTerms = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsTerms';
131
-
132
-    /**
133
-     * This element is based on work by the Web Applications for the Future Internet Lab, Institute
134
-     * of Informatics and Telematics, Pisa, Italy.
135
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#IIT-CNR.it
136
-     */
137
-    const IITCNRit = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#IIT-CNR.it';
138
-
139
-    /**
140
-     * This class is based on the work of the LRMI project, see lrmi.net for details.
141
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_LRMIClass
142
-     */
143
-    const LRMIClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_LRMIClass';
144
-
145
-    /**
146
-     * This vocabulary was improved through collaboration with the MusicBrainz project
147
-     *     ([www.musicbrainz.org](http://www.musicbrainz.org)), and is partially inspired by the
148
-     * MusicBrainz and
149
-     *     [Music Ontology](http://musicontology.com/docs/getting-started.html) schemas.
150
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#MBZ
151
-     */
152
-    const MBZ = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#MBZ';
153
-
154
-    /**
155
-     * This element is based on the STI Accommodation Ontology, see <a
156
-     * href="http://ontologies.sti-innsbruck.at/acco/ns.html">http://ontologies.sti-innsbruck.at/acco/ns.html</a>
157
-     * for details.
158
-     *     Many class and property definitions are inspired by or based on abstracts from Wikipedia,
159
-     * the free encyclopedia.
160
-     * @see https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#STI_Accommodation_Ontology
161
-     */
162
-    const STI_Accommodation_Ontology = 'https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#STI_Accommodation_Ontology';
163
-
164
-    /**
165
-     * The Question/Answer types were [based
166
-     * on](https://www.w3.org/wiki/WebSchemas/QASchemaResearch) the Stack Overflow API.
167
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_QAStackExchange
168
-     */
169
-    const Stack_Exchange = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_QAStackExchange';
170
-
171
-    /**
172
-     * This term and associated definitions draws upon the work of [The Trust
173
-     * Project](http://thetrustproject.org/).
174
-     * @see https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP-draws
175
-     */
176
-    const The_Trust_Project = 'https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP-draws';
177
-
178
-    /**
179
-     * This element is based on the work of the [Tourism Structured Web Data Community
180
-     * Group](https://www.w3.org/community/tourismdata).
181
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Tourism
182
-     */
183
-    const Tourism = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Tourism';
184
-
185
-    /**
186
-     * This class contains information contributed by
187
-     * [http://wikidoc.org>WikiDoc](http://wikidoc.org>WikiDoc).
188
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_WikiDoc
189
-     */
190
-    const WikiDoc = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_WikiDoc';
191
-
192
-    /**
193
-     * This class contains derivatives of IPTC rNews properties. rNews is a data model of publishing
194
-     * metadata with serializations currently available for RDFa as well as HTML5 Microdata. More
195
-     * information about the IPTC and rNews can be found at [rnews.org](http://rnews.org).
196
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews
197
-     */
198
-    const rNews = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews';
199
-
200
-    /**
201
-     * @var array
202
-     * @see http://schema.org/{property_name}
203
-     */
204
-    public $allowed = [
205
-        'address', 'aggregateRating', 'areaServed', 'award', 'awards', 'brand', 'contactPoint',
206
-        'contactPoints', 'department', 'dissolutionDate', 'duns', 'email', 'employee', 'employees',
207
-        'event', 'events', 'faxNumber', 'founder', 'founders', 'foundingDate', 'foundingLocation',
208
-        'funder', 'globalLocationNumber', 'hasOfferCatalog', 'hasPOS', 'isicV4', 'legalName',
209
-        'leiCode', 'location', 'logo', 'makesOffer', 'member', 'memberOf', 'members', 'naics',
210
-        'numberOfEmployees', 'offeredBy', 'owns', 'parentOrganization', 'publishingPrinciples',
211
-        'review', 'reviews', 'seeks', 'serviceArea', 'sponsor', 'subOrganization', 'taxID',
212
-        'telephone', 'vatID',
213
-    ];
214
-
215
-    /**
216
-     * @var array
217
-     * @see http://schema.org/{property_name}
218
-     */
219
-    public $parents = [
220
-        'Thing',
221
-    ];
60
+	/**
61
+	 * The schema.org Actions mechanism benefited from extensive discussions across the Web
62
+	 * standards community around W3C, in particular from the [Hydra project](http://purl.org/hydra/)
63
+	 * community group.
64
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_ActionCollabClass
65
+	 */
66
+	const ActionCollabClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_ActionCollabClass';
67
+
68
+	/**
69
+	 * This element is based on the work of the Automotive Ontology Working Group,
70
+	 * see [www.automotive-ontology.org](http://www.automotive-ontology.org) for details.
71
+	 * Many class and property definitions are inspired by or based on abstracts from Wikipedia,
72
+	 * the free encyclopedia.
73
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Automotive_Ontology_Working_Group
74
+	 */
75
+	const AutomotiveOntologyWGClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Automotive_Ontology_Working_Group';
76
+
77
+	/**
78
+	 * The W3C [Schema Bib Extend](http://www.w3.org/community/schemabibex/) (BibEx) group led the
79
+	 * work to improve schema.org for bibliographic information, including terms for periodicals,
80
+	 * articles and multi-volume works. The design was inspired in places (e.g. [[pageStart]],
81
+	 * [[pageEnd]], [[pagination]]) by the [Bibliographic Ontology](http://bibliontology.com/),
82
+	 * 'bibo'.
83
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex
84
+	 */
85
+	const BibExTerm = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex';
86
+
87
+	/**
88
+	 * This class is based upon W3C DCAT work, and benefits from collaboration around the DCAT, ADMS
89
+	 * and VoID vocabularies. See http://www.w3.org/wiki/WebSchemas/Datasets for full details and
90
+	 * mappings.
91
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_DatasetClass
92
+	 */
93
+	const DatasetClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_DatasetClass';
94
+
95
+	/**
96
+	 * This element is based on the work of the Financial Industry Business Ontology project (see
97
+	 * [http://www.fibo.org/schema](http://www.fibo.org/schema) for details), in support of the W3C
98
+	 * Financial Industry Business Ontology Community Group
99
+	 * ([http://www.fibo.org/community](http://www.fibo.org/community)). Many class and property
100
+	 * definitions are inspired by or based on [http://www.fibo.org](http://www.fibo.org).
101
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#FIBO
102
+	 */
103
+	const FIBO = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#FIBO';
104
+
105
+	/**
106
+	 * The implementation and use of Legal Entity Identifier (LEI) is supported by Global Legal
107
+	 * Entity Identifier Foundation [https://www.gleif.org](https://www.gleif.org).
108
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#GLEIF
109
+	 */
110
+	const GLEIF = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#GLEIF';
111
+
112
+	/**
113
+	 * This class is derived from the GoodRelations Vocabulary for E-Commerce, created by Martin
114
+	 * Hepp. GoodRelations is a data model for sharing e-commerce data on the Web that can be
115
+	 * expressed in a variety of syntaxes, including RDFa and HTML5 Microdata. More information
116
+	 * about GoodRelations can be found at
117
+	 * [http://purl.org/goodrelations/](http://purl.org/goodrelations/).
118
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsClass
119
+	 */
120
+	const GoodRelationsClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsClass';
121
+
122
+	/**
123
+	 * This term [uses](http://blog.schema.org/2012/11/good-relations-and-schemaorg.html)
124
+	 * terminology from the GoodRelations Vocabulary for E-Commerce, created by Martin Hepp.
125
+	 * GoodRelations is a data model for sharing e-commerce data on the Web. More information about
126
+	 * GoodRelations can be found at
127
+	 * [http://purl.org/goodrelations/](http://purl.org/goodrelations/).
128
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsTerms
129
+	 */
130
+	const GoodRelationsTerms = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsTerms';
131
+
132
+	/**
133
+	 * This element is based on work by the Web Applications for the Future Internet Lab, Institute
134
+	 * of Informatics and Telematics, Pisa, Italy.
135
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#IIT-CNR.it
136
+	 */
137
+	const IITCNRit = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#IIT-CNR.it';
138
+
139
+	/**
140
+	 * This class is based on the work of the LRMI project, see lrmi.net for details.
141
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_LRMIClass
142
+	 */
143
+	const LRMIClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_LRMIClass';
144
+
145
+	/**
146
+	 * This vocabulary was improved through collaboration with the MusicBrainz project
147
+	 *     ([www.musicbrainz.org](http://www.musicbrainz.org)), and is partially inspired by the
148
+	 * MusicBrainz and
149
+	 *     [Music Ontology](http://musicontology.com/docs/getting-started.html) schemas.
150
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#MBZ
151
+	 */
152
+	const MBZ = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#MBZ';
153
+
154
+	/**
155
+	 * This element is based on the STI Accommodation Ontology, see <a
156
+	 * href="http://ontologies.sti-innsbruck.at/acco/ns.html">http://ontologies.sti-innsbruck.at/acco/ns.html</a>
157
+	 * for details.
158
+	 *     Many class and property definitions are inspired by or based on abstracts from Wikipedia,
159
+	 * the free encyclopedia.
160
+	 * @see https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#STI_Accommodation_Ontology
161
+	 */
162
+	const STI_Accommodation_Ontology = 'https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#STI_Accommodation_Ontology';
163
+
164
+	/**
165
+	 * The Question/Answer types were [based
166
+	 * on](https://www.w3.org/wiki/WebSchemas/QASchemaResearch) the Stack Overflow API.
167
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_QAStackExchange
168
+	 */
169
+	const Stack_Exchange = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_QAStackExchange';
170
+
171
+	/**
172
+	 * This term and associated definitions draws upon the work of [The Trust
173
+	 * Project](http://thetrustproject.org/).
174
+	 * @see https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP-draws
175
+	 */
176
+	const The_Trust_Project = 'https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP-draws';
177
+
178
+	/**
179
+	 * This element is based on the work of the [Tourism Structured Web Data Community
180
+	 * Group](https://www.w3.org/community/tourismdata).
181
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Tourism
182
+	 */
183
+	const Tourism = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Tourism';
184
+
185
+	/**
186
+	 * This class contains information contributed by
187
+	 * [http://wikidoc.org>WikiDoc](http://wikidoc.org>WikiDoc).
188
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_WikiDoc
189
+	 */
190
+	const WikiDoc = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_WikiDoc';
191
+
192
+	/**
193
+	 * This class contains derivatives of IPTC rNews properties. rNews is a data model of publishing
194
+	 * metadata with serializations currently available for RDFa as well as HTML5 Microdata. More
195
+	 * information about the IPTC and rNews can be found at [rnews.org](http://rnews.org).
196
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews
197
+	 */
198
+	const rNews = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews';
199
+
200
+	/**
201
+	 * @var array
202
+	 * @see http://schema.org/{property_name}
203
+	 */
204
+	public $allowed = [
205
+		'address', 'aggregateRating', 'areaServed', 'award', 'awards', 'brand', 'contactPoint',
206
+		'contactPoints', 'department', 'dissolutionDate', 'duns', 'email', 'employee', 'employees',
207
+		'event', 'events', 'faxNumber', 'founder', 'founders', 'foundingDate', 'foundingLocation',
208
+		'funder', 'globalLocationNumber', 'hasOfferCatalog', 'hasPOS', 'isicV4', 'legalName',
209
+		'leiCode', 'location', 'logo', 'makesOffer', 'member', 'memberOf', 'members', 'naics',
210
+		'numberOfEmployees', 'offeredBy', 'owns', 'parentOrganization', 'publishingPrinciples',
211
+		'review', 'reviews', 'seeks', 'serviceArea', 'sponsor', 'subOrganization', 'taxID',
212
+		'telephone', 'vatID',
213
+	];
214
+
215
+	/**
216
+	 * @var array
217
+	 * @see http://schema.org/{property_name}
218
+	 */
219
+	public $parents = [
220
+		'Thing',
221
+	];
222 222
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Intangible.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -9,11 +9,11 @@
 block discarded – undo
9 9
  */
10 10
 class Intangible extends BaseType
11 11
 {
12
-    /**
13
-     * @var array
14
-     * @see http://schema.org/{property_name}
15
-     */
16
-    public $parents = [
17
-        'Thing',
18
-    ];
12
+	/**
13
+	 * @var array
14
+	 * @see http://schema.org/{property_name}
15
+	 */
16
+	public $parents = [
17
+		'Thing',
18
+	];
19 19
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Place.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -37,23 +37,23 @@
 block discarded – undo
37 37
  */
38 38
 class Place extends BaseType
39 39
 {
40
-    /**
41
-     * @var array
42
-     * @see http://schema.org/{property_name}
43
-     */
44
-    public $allowed = [
45
-        'additionalProperty', 'address', 'aggregateRating', 'amenityFeature', 'branchCode',
46
-        'containedIn', 'containedInPlace', 'containsPlace', 'event', 'events', 'faxNumber', 'geo',
47
-        'globalLocationNumber', 'hasMap', 'isAccessibleForFree', 'isicV4', 'logo', 'map', 'maps',
48
-        'maximumAttendeeCapacity', 'openingHoursSpecification', 'photo', 'photos', 'publicAccess',
49
-        'review', 'reviews', 'smokingAllowed', 'specialOpeningHoursSpecification', 'telephone',
50
-    ];
40
+	/**
41
+	 * @var array
42
+	 * @see http://schema.org/{property_name}
43
+	 */
44
+	public $allowed = [
45
+		'additionalProperty', 'address', 'aggregateRating', 'amenityFeature', 'branchCode',
46
+		'containedIn', 'containedInPlace', 'containsPlace', 'event', 'events', 'faxNumber', 'geo',
47
+		'globalLocationNumber', 'hasMap', 'isAccessibleForFree', 'isicV4', 'logo', 'map', 'maps',
48
+		'maximumAttendeeCapacity', 'openingHoursSpecification', 'photo', 'photos', 'publicAccess',
49
+		'review', 'reviews', 'smokingAllowed', 'specialOpeningHoursSpecification', 'telephone',
50
+	];
51 51
 
52
-    /**
53
-     * @var array
54
-     * @see http://schema.org/{property_name}
55
-     */
56
-    public $parents = [
57
-        'Thing',
58
-    ];
52
+	/**
53
+	 * @var array
54
+	 * @see http://schema.org/{property_name}
55
+	 */
56
+	public $parents = [
57
+		'Thing',
58
+	];
59 59
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Review.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -11,19 +11,19 @@
 block discarded – undo
11 11
  */
12 12
 class Review extends BaseType
13 13
 {
14
-    /**
15
-     * @var array
16
-     * @see http://schema.org/{property_name}
17
-     */
18
-    public $allowed = [
19
-        'itemReviewed', 'reviewBody', 'reviewRating',
20
-    ];
14
+	/**
15
+	 * @var array
16
+	 * @see http://schema.org/{property_name}
17
+	 */
18
+	public $allowed = [
19
+		'itemReviewed', 'reviewBody', 'reviewRating',
20
+	];
21 21
 
22
-    /**
23
-     * @var array
24
-     * @see http://schema.org/{property_name}
25
-     */
26
-    public $parents = [
27
-        'CreativeWork',
28
-    ];
22
+	/**
23
+	 * @var array
24
+	 * @see http://schema.org/{property_name}
25
+	 */
26
+	public $parents = [
27
+		'CreativeWork',
28
+	];
29 29
 }
Please login to merge, or discard this patch.