• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

voku / Arrayy / 4403873933

pending completion
4403873933

push

github

GitHub
Merge pull request #128 from voku/renovate/actions-cache-3.x

2479 of 2778 relevant lines covered (89.24%)

33.39 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

40.0
/src/Create.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace {
6
    if (\PHP_VERSION_ID < 70300) {
7
        if (!\function_exists('is_countable')) {
8
            /**
9
             * @param mixed $var
10
             *
11
             * @return bool
12
             */
13
            function is_countable($var)
14
            {
15
                return \is_array($var)
×
16
                       ||
×
17
                       $var instanceof SimpleXMLElement
×
18
                       ||
×
19
                       $var instanceof Countable
×
20
                       ||
×
21
                       $var instanceof ResourceBundle;
×
22
            }
23
        }
24

25
        if (!\function_exists('array_key_first')) {
26
            /**
27
             * @param array<mixed> $array
28
             *
29
             * @return int|string|null
30
             */
31
            function array_key_first(array $array)
32
            {
33
                foreach ($array as $key => $value) {
×
34
                    return $key;
×
35
                }
36

37
                return null;
×
38
            }
39
        }
40

41
        if (!\function_exists('array_key_last')) {
42
            /**
43
             * @param array<mixed> $array
44
             *
45
             * @return int|string|null
46
             */
47
            function array_key_last(array $array)
48
            {
49
                if (\count($array) === 0) {
×
50
                    return null;
×
51
                }
52

53
                return \array_keys(
×
54
                    \array_slice($array, -1, 1, true)
×
55
                )[0];
×
56
            }
57
        }
58
    }
59
}
60

61
namespace Arrayy {
62
    use Arrayy\Collection\Collection;
63
    use Arrayy\TypeCheck\TypeCheckArray;
64
    use Arrayy\TypeCheck\TypeCheckInterface;
65

66
    if (!\function_exists('Arrayy\create')) {
67
        /**
68
         * Creates a Arrayy object.
69
         *
70
         * @param mixed $data
71
         *
72
         * @return Arrayy<int|string,mixed>
73
         */
74
        function create($data): Arrayy
75
        {
76
            return new Arrayy($data);
2✔
77
        }
78
    }
79

80
    if (!\function_exists('Arrayy\collection')) {
81
        /**
82
         * Creates a Collection object.
83
         *
84
         * @param string|TypeCheckArray|TypeCheckInterface[] $type
85
         * @param array<mixed>                               $data
86
         *
87
         * @return Collection
88
         *
89
         * @template T
90
         * @phpstan-param T $type
91
         * @phpstan-return Collection<array-key,T>
92
         */
93
        function collection($type, $data = []): Collection
94
        {
95
            /** @phpstan-var Collection<array-key,T> */
96
            return Collection::construct($type, $data);
2✔
97
        }
98
    }
99

100
    /**
101
     * @param array<mixed> $array
102
     * @param mixed        $fallback <p>This fallback will be used, if the array is empty.</p>
103
     *
104
     * @return mixed|null
105
     *
106
     * @template TLast
107
     * @template TLastFallback
108
     * @phpstan-param TLast[] $array
109
     * @phpstan-param TLastFallback $fallback
110
     * @phpstan-return TLast|TLastFallback
111
     */
112
    function array_last(array $array, $fallback = null)
113
    {
114
        $key_last = \array_key_last($array);
4✔
115
        if ($key_last === null) {
4✔
116
            return $fallback;
1✔
117
        }
118

119
        return $array[$key_last];
3✔
120
    }
121

122
    /**
123
     * @param array<mixed> $array
124
     * @param mixed        $fallback <p>This fallback will be used, if the array is empty.</p>
125
     *
126
     * @return mixed|null
127
     *
128
     * @template TFirst
129
     * @template TFirstFallback
130
     * @phpstan-param TFirst[] $array
131
     * @phpstan-param TFirstFallback $fallback
132
     * @phpstan-return TFirst|TFirstFallback
133
     */
134
    function array_first(array $array, $fallback = null)
135
    {
136
        $key_first = \array_key_first($array);
11✔
137
        if ($key_first === null) {
11✔
138
            return $fallback;
2✔
139
        }
140

141
        return $array[$key_first];
10✔
142
    }
143
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc