Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
6.06% |
2 / 33 |
|
40.00% |
2 / 5 |
CRAP | |
0.00% |
0 / 1 |
BufferLogger | |
6.06% |
2 / 33 |
|
40.00% |
2 / 5 |
228.22 | |
0.00% |
0 / 1 |
log | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
ln | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getHtml | |
0.00% |
0 / 12 |
|
0.00% |
0 / 1 |
30 | |||
getMarkDown | |
0.00% |
0 / 11 |
|
0.00% |
0 / 1 |
30 | |||
getText | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
20 |
1 | <?php |
2 | |
3 | namespace WebPConvert\Loggers; |
4 | |
5 | use WebPConvert\Loggers\BaseLogger; |
6 | |
7 | /** |
8 | * Collect the logging and retrieve it later in HTML or plain text format. |
9 | * |
10 | * @package WebPConvert |
11 | * @author Bjørn Rosell <it@rosell.dk> |
12 | * @since Class available since Release 2.0.0 |
13 | */ |
14 | class BufferLogger extends BaseLogger |
15 | { |
16 | public $entries = array(); |
17 | |
18 | /** |
19 | * Write a message to the buffer - all entries can later be retrieved with getText() or getHtlm(). |
20 | * |
21 | * @param string $msg message to log |
22 | * @param string $style style (null | bold | italic) |
23 | * @return void |
24 | */ |
25 | public function log($msg, $style = '') |
26 | { |
27 | $this->entries[] = [$msg, $style]; |
28 | } |
29 | |
30 | /** |
31 | * Write a new line to the buffer. |
32 | * |
33 | * @return void |
34 | */ |
35 | public function ln() |
36 | { |
37 | $this->entries[] = ''; |
38 | } |
39 | |
40 | /** |
41 | * Get everything logged - as HTML. |
42 | * |
43 | * @return string The log, formatted as HTML. |
44 | */ |
45 | public function getHtml() |
46 | { |
47 | $html = ''; |
48 | foreach ($this->entries as $entry) { |
49 | if ($entry == '') { |
50 | $html .= '<br>'; |
51 | } else { |
52 | list($msg, $style) = $entry; |
53 | $msg = htmlspecialchars($msg); |
54 | if ($style == 'bold') { |
55 | $html .= '<b>' . $msg . '</b>'; |
56 | } elseif ($style == 'italic') { |
57 | $html .= '<i>' . $msg . '</i>'; |
58 | } else { |
59 | $html .= $msg; |
60 | } |
61 | } |
62 | } |
63 | return $html; |
64 | } |
65 | |
66 | /** |
67 | * Get everything logged - as markdown. |
68 | * |
69 | * @return string The log, formatted as MarkDown. |
70 | */ |
71 | public function getMarkDown($newLineChar = "\n\r") |
72 | { |
73 | $md = ''; |
74 | foreach ($this->entries as $entry) { |
75 | if ($entry == '') { |
76 | $md .= $newLineChar; |
77 | } else { |
78 | list($msg, $style) = $entry; |
79 | if ($style == 'bold') { |
80 | $md .= '**' . $msg . '** '; |
81 | } elseif ($style == 'italic') { |
82 | $md .= '*' . $msg . '* '; |
83 | } else { |
84 | $md .= $msg; |
85 | } |
86 | } |
87 | } |
88 | return $md; |
89 | } |
90 | |
91 | /** |
92 | * Get everything logged - as plain text. |
93 | * |
94 | * @param string $newLineChar. The character used for new lines. |
95 | * @return string The log, formatted as plain text. |
96 | */ |
97 | public function getText($newLineChar = ' ') |
98 | { |
99 | $text = ''; |
100 | foreach ($this->entries as $entry) { |
101 | if ($entry == '') { // empty string means new line |
102 | if (substr($text, -2) != '.' . $newLineChar) { |
103 | $text .= '.' . $newLineChar; |
104 | } |
105 | } else { |
106 | list($msg, $style) = $entry; |
107 | $text .= $msg; |
108 | } |
109 | } |
110 | |
111 | return $text; |
112 | } |
113 | } |