functions.php ➔ file_put_contents()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 8
Ratio 100 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 0
dl 8
loc 8
ccs 3
cts 3
cp 1
crap 2
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Meare\Juggler;
4
5
/**
6
 * Recursively checks if array1 is sub-array of array2. Both keys and values must match.
7
 *
8
 * @param array $a1
9
 * @param array $a2
10
 * @return bool
11
 */
12
function is_subarray_assoc(array $a1, array $a2)
13
{
14 10
    $result = true;
15 10
    foreach ($a1 as $key => $value) {
16 9
        if (!isset($a2[$key])) {
17 2
            return false;
18 7
        } elseif (is_array($value) && is_array($a2[$key])) {
19 3
            $result = is_subarray_assoc($value, $a2[$key]);
20 3
        } else {
21 7
            $result = $value == $a2[$key];
22
        }
23 7
        if (!$result) {
24 5
            return false;
25
        }
26 6
    }
27
28 6
    return $result;
29
}
30
31
/**
32
 * Strips all array elements which value strictly equals to null
33
 *
34
 * @param array $array
35
 * @return array
36
 */
37
function array_filter_null(array $array)
38
{
39
    return array_filter($array, function ($var) {
40 9
        return null !== $var;
41 9
    });
42
}
43
44
/**
45
 * Makes empty array to be serialized as "{}" (empty object) in JSON
46
 *
47
 * @param array $array
48
 * @return array|\stdClass
49
 */
50
function json_object(array $array)
51
{
52 6
    return sizeof($array) > 0 ? $array : new \stdClass;
53
}
54
55
/**
56
 * Wrapper that throws exception
57
 *
58
 * @see file_get_contents()
59
 * @return string|bool
60
 * @throws \RuntimeException
61
 */
62 View Code Duplication
function file_get_contents()
0 ignored issues
show
Duplication introduced by
This function seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
63
{
64 6
    if (false === $contents = @call_user_func_array('file_get_contents', func_get_args())) {
65 3
        throw new \RuntimeException(error_get_last()['message']);
66
    }
67
68 3
    return $contents;
69
}
70
71
/**
72
 * Wrapper that throws exception
73
 *
74
 * @see file_put_contents()
75
 * @return int|bool
76
 * @throws \RuntimeException
77
 */
78 View Code Duplication
function file_put_contents()
0 ignored issues
show
Duplication introduced by
This function seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
79
{
80 4
    if (false === $result = @call_user_func_array('file_put_contents', func_get_args())) {
81 2
        throw new \RuntimeException(error_get_last()['message']);
82
    }
83
84 2
    return $result;
85
}
86