Helpers   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 9
lcom 0
cbo 0
dl 0
loc 37
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getArrayableItems() 0 11 4
B isArrayable() 0 11 5
1
<?php
2
namespace Michaels\Manager;
3
use Michaels\Manager\Contracts\ManagesItemsInterface;
4
use Michaels\Manager\Traits\ManagesItemsTrait;
5
use Traversable;
6
7
/**
8
 * Class Helpers
9
 * @package Michaels\Manager
10
 */
11
class Helpers
12
{
13
    /**
14
     * Results array of items from Collection or Arrayable.
15
     *
16
     * @param  mixed $items
17
     * @return array
18
     */
19
    public static function getArrayableItems($items)
20
    {
21
        if ($items instanceof ManagesItemsTrait || $items instanceof ManagesItemsInterface) {
22
            return $items->getAll();
23
24
        } elseif ($items instanceof Traversable) {
25
            return iterator_to_array($items);
26
        }
27
28
        return (array)$items;
29
    }
30
31
    /**
32
     * Returns `true` if value can be used as array or traversed.
33
     * @param $value
34
     * @return bool
35
     */
36
    public static function isArrayable($value)
37
    {
38
        if ($value instanceof ManagesItemsInterface
39
            || $value instanceof ManagesItemsTrait
40
            || $value instanceof Traversable
41
            || is_array($value)
42
        ) {
43
            return true;
44
        }
45
        return false;
46
    }
47
}
48