lime_output::__construct()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 2
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
ccs 0
cts 5
cp 0
crap 6
1
<?php
2
3
/**
4
 * lime_output class.
5
 * @package lime
6
 */
7
class lime_output
8
{
9
    public $colorizer = null;
10
    public $base_dir = null;
11
12
    /**
13
     * @param bool|false $force_colors
14
     * @param null $base_dir
15
     */
16
    public function __construct($force_colors = false, $base_dir = null)
17
    {
18
        $this->colorizer = new lime_colorizer($force_colors);
19
        $this->base_dir = $base_dir === null ? getcwd() : $base_dir;
20
    }
21
22
    /**
23
     * Produces an Echo
24
     */
25
    public function diag()
26
    {
27
        $messages = func_get_args();
28
        foreach ($messages as $message) {
29
            echo $this->colorizer->colorize('# ' . join("\n# ", (array)$message), 'COMMENT') . "\n";
0 ignored issues
show
Documentation introduced by
'COMMENT' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
30
        }
31
    }
32
33
    /**
34
     * @param $message
35
     */
36
    public function comment($message)
37
    {
38
        echo $this->colorizer->colorize(sprintf('# %s', $message), 'COMMENT') . "\n";
0 ignored issues
show
Documentation introduced by
'COMMENT' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
39
    }
40
41
    /**
42
     * @param $message
43
     */
44
    public function info($message)
45
    {
46
        echo $this->colorizer->colorize(sprintf('> %s', $message), 'INFO_BAR') . "\n";
0 ignored issues
show
Documentation introduced by
'INFO_BAR' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
47
    }
48
49
    /**
50
     * @param $message
51
     * @param null $file
52
     * @param null $line
53
     * @param array $traces
54
     */
55
    public function error($message, $file = null, $line = null, $traces = array())
56
    {
57
        if ($file !== null) {
58
            $message .= sprintf("\n(in %s on line %s)", $file, $line);
59
        }
60
61
        // some error messages contain absolute file paths
62
        $message = $this->strip_base_dir($message);
63
64
        $space = $this->colorizer->colorize(str_repeat(' ', 71), 'RED_BAR') . "\n";
0 ignored issues
show
Documentation introduced by
'RED_BAR' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
65
        $message = trim($message);
66
        $message = wordwrap($message, 66, "\n");
67
68
        echo "\n" . $space;
69
        foreach (explode("\n", $message) as $message_line) {
70
            echo $this->colorizer->colorize(str_pad('  ' . $message_line, 71, ' '), 'RED_BAR') . "\n";
0 ignored issues
show
Documentation introduced by
'RED_BAR' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
71
        }
72
        echo $space . "\n";
73
74
        if (count($traces) > 0) {
75
            echo $this->colorizer->colorize('Exception trace:', 'COMMENT') . "\n";
0 ignored issues
show
Documentation introduced by
'COMMENT' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
76
77
            $this->print_trace(null, $file, $line);
78
79
            foreach ($traces as $trace) {
80
                if (array_key_exists('class', $trace)) {
81
                    $method = sprintf('%s%s%s()', $trace['class'], $trace['type'], $trace['function']);
82
                } else {
83
                    $method = sprintf('%s()', $trace['function']);
84
                }
85
86
                if (array_key_exists('file', $trace)) {
87
                    $this->print_trace($method, $trace['file'], $trace['line']);
88
                } else {
89
                    $this->print_trace($method);
90
                }
91
            }
92
93
            echo "\n";
94
        }
95
    }
96
97
    /**
98
     * @param string $method
99
     */
100
    protected function print_trace($method = null, $file = null, $line = null)
101
    {
102
        if (!is_null($method)) {
103
            $method .= ' ';
104
        }
105
106
        echo '  ' . $method . 'at ';
107
108
        if (!is_null($file) && !is_null($line)) {
109
            printf("%s:%s\n", $this->colorizer->colorize($this->strip_base_dir($file), 'TRACE'),
0 ignored issues
show
Documentation introduced by
'TRACE' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
110
                $this->colorizer->colorize($line, 'TRACE'));
0 ignored issues
show
Documentation introduced by
'TRACE' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
111
        } else {
112
            echo "[internal function]\n";
113
        }
114
    }
115
116
    /**
117
     * @param $message
118
     * @param null $colorizer_parameter
119
     * @param bool|true $colorize
120
     */
121
    public function echoln($message, $colorizer_parameter = null, $colorize = true)
122
    {
123
        if ($colorize) {
124
            $message = preg_replace('/(?:^|\.)((?:not ok|dubious|errors) *\d*)\b/e',
125
                '$this->colorizer->colorize(\'$1\', \'ERROR\')', $message);
126
            $message = preg_replace('/(?:^|\.)(ok *\d*)\b/e', '$this->colorizer->colorize(\'$1\', \'INFO\')', $message);
127
            $message = preg_replace('/"(.+?)"/e', '$this->colorizer->colorize(\'$1\', \'PARAMETER\')', $message);
128
            $message = preg_replace('/(\->|\:\:)?([a-zA-Z0-9_]+?)\(\)/e',
129
                '$this->colorizer->colorize(\'$1$2()\', \'PARAMETER\')', $message);
130
        }
131
132
        echo ($colorizer_parameter ? $this->colorizer->colorize($message, $colorizer_parameter) : $message) . "\n";
133
    }
134
135
    /**
136
     * @param string $message
137
     */
138
    public function green_bar($message)
139
    {
140
        echo $this->colorizer->colorize($message . str_repeat(' ', 71 - min(71, strlen($message))), 'GREEN_BAR') . "\n";
0 ignored issues
show
Documentation introduced by
'GREEN_BAR' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
141
    }
142
143
    /**
144
     * @param string $message
145
     */
146
    public function red_bar($message)
147
    {
148
        echo $this->colorizer->colorize($message . str_repeat(' ', 71 - min(71, strlen($message))), 'RED_BAR') . "\n";
0 ignored issues
show
Documentation introduced by
'RED_BAR' is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
149
    }
150
151
    /**
152
     * @return string
153
     */
154
    protected function strip_base_dir($text)
155
    {
156
        return str_replace(DIRECTORY_SEPARATOR, '/',
157
            str_replace(realpath($this->base_dir) . DIRECTORY_SEPARATOR, '', $text));
158
    }
159
}
160