Issues (59)

src/Helpers/functions.php (2 issues)

Severity
1
<?php
2
3
namespace seregazhuk\PinterestBot;
4
5
/**
6
 * Returns all traits used by a class, its subclasses and trait of their traits.
7
 *
8
 * @param  object|string $class
9
 * @return array
10
 */
11
function class_uses_recursive($class)
12
{
13
    if (is_object($class)) {
14
        $class = get_class($class);
15
    }
16
    $results = [];
17
    foreach (array_merge([$class => $class], class_parents($class)) as $class) {
0 ignored issues
show
$class is overwriting one of the parameters of this function.
Loading history...
18
        $results += trait_uses_recursive($class);
19
    }
20
    return array_unique($results);
21
}
22
23
/**
24
 * Returns all traits used by a trait and its traits.
25
 *
26
 * @param  string $trait
27
 * @return array
28
 */
29
function trait_uses_recursive($trait)
30
{
31
    $traits = class_uses($trait);
32
    foreach ($traits as $trait) {
0 ignored issues
show
$trait is overwriting one of the parameters of this function.
Loading history...
33
        $traits += trait_uses_recursive($trait);
34
    }
35
    return $traits;
36
}
37
38
/**
39
 * Returns array's value by key using dot notation.
40
 *
41
 * @param string $key
42
 * @param array $data
43
 * @param mixed $default
44
 * @return array|bool|mixed
45
 */
46
function get_array_data($key = '', $data, $default = null)
47
{
48
    if (empty($key)) {
49
        return $data;
50
    }
51
52
    $indexes = explode('.', $key);
53
54
    $value = $data;
55
56
    foreach ($indexes as $index) {
57
        if (!isset($value[$index])) {
58
            return $default;
59
        }
60
61
        $value = $value[$index];
62
    }
63
64
    return $value;
65
}
66