DiffUtility::diff()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.8666
c 0
b 0
f 0
cc 2
nc 2
nop 2
1
<?php
2
declare(strict_types = 1);
3
namespace T3G\Elasticorn\Utility;
4
5
use SebastianBergmann\Diff\Differ;
6
7
/**
8
 * Class DiffUtility
9
 *
10
 * @package T3G\Elasticorn\Utility
11
 */
12
class DiffUtility
13
{
14
15
    /**
16
     * @param array $arr
17
     * @param array $arr2
18
     * @return string
19
     */
20
    public function diff(array $arr, array $arr2) : string
21
    {
22
        $result = '';
23
        $this->prepareArray($arr);
24
        $this->prepareArray($arr2);
25
        if ($arr !== $arr2) {
26
            $differ = new Differ("--- On Server\n+++ In Configuration\n", false);
27
            $diff = $differ->diff(print_r($arr, true), print_r($arr2, true));
28
            $result = print_r($diff, true);
29
        }
30
        return $result;
31
    }
32
33
    /**
34
     * @param array &$array
35
     */
36
    private function prepareArray(array &$array)
37
    {
38
        $array = ArrayUtility::flatten($array);
39
        ksort($array);
40
    }
41
}