Completed
Pull Request — v1 (#422)
by
unknown
03:17
created

Formatter::formatExceptionPlain()   C

Complexity

Conditions 7
Paths 33

Size

Total Lines 24
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 19
CRAP Score 7

Importance

Changes 3
Bugs 1 Features 0
Metric Value
c 3
b 1
f 0
dl 0
loc 24
ccs 19
cts 19
cp 1
rs 6.7272
cc 7
eloc 18
nc 33
nop 1
crap 7
1
<?php
2
/**
3
 * Whoops - php errors for cool kids
4
 * @author Filipe Dobreira <http://github.com/filp>
5
 */
6
7
namespace Whoops\Exception;
8
9
10
class Formatter
11
{
12
    /**
13
     * Returns all basic information about the exception in a simple array
14
     * for further convertion to other languages
15
     * @param  Inspector $inspector
16
     * @param  bool      $shouldAddTrace
17
     * @return array
18
     */
19 1
    public static function formatExceptionAsDataArray(Inspector $inspector, $shouldAddTrace)
20
    {
21 1
        $exception = $inspector->getException();
22
        $response = array(
23 1
            'type'    => get_class($exception),
24 1
            'message' => $exception->getMessage(),
25 1
            'file'    => $exception->getFile(),
26 1
            'line'    => $exception->getLine(),
27 1
        );
28
29 1
        if ($shouldAddTrace) {
30
            $frames    = $inspector->getFrames();
31
            $frameData = array();
32
33
            foreach ($frames as $frame) {
34
                /** @var Frame $frame */
35
                $frameData[] = array(
36
                    'file'     => $frame->getFile(),
37
                    'line'     => $frame->getLine(),
38
                    'function' => $frame->getFunction(),
39
                    'class'    => $frame->getClass(),
40
                    'args'     => $frame->getArgs(),
41
                );
42
            }
43
44
            $response['trace'] = $frameData;
45
        }
46
47 1
        return $response;
48
    }
49
50 1
    public static function formatExceptionPlain(Inspector $inspector)
51
    {
52 1
        $message = $inspector->getException()->getMessage();
53 1
        $frames = $inspector->getFrames();
54
55 1
        $plain = $inspector->getExceptionName();
56 1
        $plain .= ' thrown with message "';
57 1
        $plain .= $message;
58 1
        $plain .= '"'."\n\n";
59
60 1
        $plain .= "Stacktrace:\n";
61 1
        foreach ($frames as $i => $frame) {
62 1
            $plain .= "#". (count($frames) - $i - 1). " ";
63 1
            $plain .= $frame->getClass() ?: '';
64 1
            $plain .= $frame->getClass() && $frame->getFunction() ? ":" : "";
65 1
            $plain .= $frame->getFunction() ?: '';
66 1
            $plain .= ' in ';
67 1
            $plain .= ($frame->getFile() ?: '<#unknown>');
68 1
            $plain .= ':';
69 1
            $plain .= (int) $frame->getLine(). "\n";
70 1
        }
71
72 1
        return $plain;
73
    }
74
}
75