Completed
Push — master ( e86954...7cbcb1 )
by Ítalo
02:48
created

Stack::toArray()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 3.0263

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 13
ccs 6
cts 7
cp 0.8571
rs 9.4286
cc 3
eloc 8
nc 3
nop 0
crap 3.0263
1
<?php
2
3
// Copyright (c) Lellys Informática. All rights reserved. See License.txt in the project root for license information.
4
namespace Collections;
5
6
use SplStack;
7
8
/**
9
 * Represents a simple last-in-first-out (LIFO) non-generic collection of objects.
10
 */
11
class Stack extends SplStack implements StackInterface, \JsonSerializable
12
{
13
    /**
14
     * Inserts multiples objects at the top of the Stack.
15
     * @param array $items The Objects to push onto the Stack. The value <b>can</b> be null.
16
     * @return $this|Stack
17
     */
18 1
    public function pushMultiple($items)
19
    {
20 1
        foreach ($items as $item) {
21 1
            $this->push($item);
22
        }
23
24 1
        return $this;
25
    }
26
27
    public static function fromArray(array $arr)
28
    {
29
        $collection = new Stack();
30
        foreach ($arr as $v) {
31
            if (is_array($v)) {
32
                $collection->push(static::fromArray($v));
33
            } else {
34
                $collection->push($v);
35
            }
36
        }
37
38
        return $collection;
39
    }
40
41
    /**
42
     * {@inheritdoc}
43
     */
44 2
    public function toArray()
45
    {
46 2
        $array = array();
47 2
        foreach ($this as $key => $value) {
48 2
            if ($value instanceof CollectionConvertableInterface) {
49
                $array[$key] = $value->toArray();
50
            } else {
51 2
                $array[$key] = $value;
52
            }
53
        }
54
55 2
        return $array;
56
    }
57
58
    /**
59
     * {@inheritdoc}
60
     */
61 2
    public function __toString()
62
    {
63 2
        return get_class($this);
64
    }
65
66
    /**
67
     * (PHP 5 &gt;= 5.4.0)<br/>
68
     * Specify data which should be serialized to JSON
69
     * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
70
     * @return mixed data which can be serialized by <b>json_encode</b>,
71
     * which is a value of any type other than a resource.
72
     */
73
    public function jsonSerialize()
74
    {
75
//        return $this->getIterator()->toArray();
76
    }
77
}
78