SessionStorage::getSession()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace yii2mod\cart\storage;
4
5
use Yii;
6
use yii\base\BaseObject;
7
use yii2mod\cart\Cart;
8
9
/**
10
 * Class SessionStorage is a session adapter for cart data storage.
11
 *
12
 * @property \yii\web\Session session
13
 */
14
class SessionStorage extends BaseObject implements StorageInterface
15
{
16
    /**
17
     * @var string
18
     */
19
    public $key = 'cart';
20
21
    /**
22
     * @inheritdoc
23
     */
24
    public function load(Cart $cart)
25
    {
26
        $cartData = [];
27
28
        if (false !== ($session = ($this->session->get($this->key, false)))) {
29
            $cartData = unserialize($session);
30
        }
31
32
        return $cartData;
33
    }
34
35
    /**
36
     * @inheritdoc
37
     */
38
    public function save(Cart $cart)
39
    {
40
        $sessionData = serialize($cart->getItems());
41
42
        $this->session->set($this->key, $sessionData);
43
    }
44
45
    /**
46
     * @return object
47
     */
48
    public function getSession()
49
    {
50
        return Yii::$app->get('session');
51
    }
52
}
53