Passed
Push — main ( 7054df...cd5745 )
by Sílvio
07:40 queued 04:49
created

CacheerHelper::validateCacheItem()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 4
c 1
b 0
f 0
nc 3
nop 2
dl 0
loc 7
rs 10
1
<?php
2
3
namespace Silviooosilva\CacheerPhp\Helpers;
4
5
use InvalidArgumentException;
6
7
class CacheerHelper
8
{
9
    /**
10
     * @param array $item
11
     * @param callable|null $exceptionFactory
12
     * @return void
13
     */
14
    public static function validateCacheItem(array $item, ?callable $exceptionFactory = null)
15
    {
16
        if (!isset($item['cacheKey']) || !isset($item['cacheData'])) {
17
            if ($exceptionFactory) {
18
                throw $exceptionFactory("Each item must contain 'cacheKey' and 'cacheData'");
19
            }
20
            throw new InvalidArgumentException("Each item must contain 'cacheKey' and 'cacheData'");
21
        }
22
    }
23
24
    /**
25
     * @param mixed $cacheData
26
     * @return array
27
     */
28
    public static function mergeCacheData($cacheData)
29
    {
30
        if (is_array($cacheData) && is_array(reset($cacheData))) {
31
            $merged = [];
32
            foreach ($cacheData as $data) {
33
                $merged[] = $data;
34
            }
35
            return $merged;
36
        }
37
        return (array)$cacheData;
38
    }
39
40
    /**
41
     * @param mixed $currentCacheData
42
     * @param mixed $cacheData
43
     * @return array
44
     */
45
    public static function arrayIdentifier(mixed $currentCacheData, mixed $cacheData)
46
    {
47
        if (is_array($currentCacheData) && is_array($cacheData)) {
48
            return array_merge($currentCacheData, $cacheData);
49
        }
50
        return array_merge((array)$currentCacheData, (array)$cacheData);
51
    }
52
}