MiniTraceBehavior::getMiniTrace()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 9
c 0
b 0
f 0
nc 3
nop 0
dl 0
loc 14
rs 9.9666
1
<?php
2
3
namespace betadog\yii1;
4
5
/**
6
 * Class MiniTrace
7
 *
8
 * Usage:
9
 * Add those to ./protected/config/main.php
10
<pre>
11
    'behaviors'         => [
12
        'miniTrace' => [
13
            'class' => 'betadog\\yii1\\MiniTraceBehavior',
14
        ],
15
    ],
16
</pre>
17
 *
18
 * And now u can use it anywhere like:
19
 * echo Yii:app()->miniTrace();
20
 *
21
 */
22
class MiniTraceBehavior extends \CBehavior
23
{
24
    public function getMiniTrace(): string
25
    {
26
        $result = [];
27
        $trace  = debug_backtrace();
28
        array_shift($trace);
29
        foreach ($trace as $one) {
30
            if (!isset($one['file'])) {
31
                $result [] = 'unknown';
32
            } else {
33
                $result [] = sprintf('%s -- %s:%d', $one['function'], $one['file'], $one["line"]);
34
            }
35
        }
36
37
        return implode("\n", $result);
38
    }
39
}