FormatHelper   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 11
eloc 20
c 1
b 0
f 1
dl 0
loc 44
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
B stringfyTelegramMessage() 0 22 7
A stringfyMessage() 0 9 4
1
<?php
2
namespace App\Monolog;
3
4
class FormatHelper {
5
6
    /**
7
     * @param mixed $message
8
     * @return string
9
     */
10
    public static function stringfyMessage($message) {
11
12
        if($message instanceof \Throwable) {
13
            $message = (string) $message;
14
        } else if(is_array($message) || is_object($message)) {
15
            $message = json_encode((array) $message, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
16
            $message = str_replace('\\u0000', '', $message);
17
        }
18
        return (string) $message;
19
    }
20
21
    /**
22
     * @param mixed $message
23
     * @param array $context
24
     * @return string
25
     */
26
    public static function stringfyTelegramMessage($message, array $context) {
27
28
        $source = (isset($context['source']) ? sprintf("<b>%s</b>", (string) $context['source']) : '');
29
30
        if($message instanceof \Throwable) {
31
32
            $message = sprintf("%s, <i>File: %s</i>", $message->getMessage(), $message->getFile());
33
34
        } else if(is_array($message) || is_object($message)) {
35
36
            $message = json_encode((array) $message, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
37
            $message = str_replace('\\u0000', '', $message);
38
            if(strlen($message) > 4000) {
39
                $message = substr($message, 0, 4000) . '...';
40
            }
41
            $message = sprintf("<code>%s</code>", $message);
42
        }
43
44
        if(!empty($source)) {
45
            return sprintf("%s: %s", $source, $message);
46
        } else {
47
            return $message;
48
        }
49
    }
50
}