DiffUtility   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 2
dl 0
loc 30
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A diff() 0 12 2
A prepareArray() 0 5 1
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
}