DynamicMutatorException   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 1
dl 0
loc 34
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 2
A dumpToString() 0 10 2
1
<?php
2
3
namespace Mindtwo\DynamicMutators\Exceptions;
4
5
use Exception;
6
use Throwable;
7
8
class DynamicMutatorException extends Exception
9
{
10
    /**
11
     * DynamicMutatorException constructor.
12
     *
13
     * @param string         $message
14
     * @param int            $code
15
     * @param Throwable|null $previous
16
     * @param array          $dump
17
     */
18
    public function __construct(string $message = '', int $code = 0, Throwable $previous = null, array $dump = [])
19
    {
20
        $message = $dump ? $message.$this->dumpToString($dump) : $message;
21
        parent::__construct($message, $code, $previous);
22
    }
23
24
    /**
25
     * Convert dump array to string.
26
     *
27
     * @param array $dump
28
     *
29
     * @return string
30
     */
31
    protected function dumpToString(array $dump): string
32
    {
33
        return collect($dump)
34
            ->map(function ($item, $key) {
35
                return str_pad($key.':', 15, ' ')
36
                       .(is_scalar($item) ? $item : json_encode($item));
37
            })
38
            ->prepend("\n")
39
            ->implode("\n");
40
    }
41
}
42