SessionBagProxy

class SessionBagProxy implements SessionBagInterface

Methods

public __construct(SessionBagInterface $bag, array $data, $hasBeenStarted) No description
public SessionBagInterface getBag() No description
public bool isEmpty() No description
public string getName() Gets this bag's name.
public initialize(array $array) Initializes the Bag.
public string getStorageKey() Gets the storage key for this bag.
public mixed clear() Clears out data from bag.

Details

at line 25

__construct()

public __construct(SessionBagInterface $bag, array $data, $hasBeenStarted)

Parameters

SessionBagInterface $bag
array $data
$hasBeenStarted
at line 35

getBag()

public SessionBagInterface getBag()

Return Value

SessionBagInterface
at line 43

isEmpty()

public bool isEmpty()

Return Value

bool
at line 51

getName()

public string getName()

Gets this bag's name.

Return Value

string
at line 59

initialize()

public initialize(array $array)

Initializes the Bag.

Parameters

array $array
at line 70

getStorageKey()

public string getStorageKey()

Gets the storage key for this bag.

Return Value

string
at line 78

clear()

public mixed clear()

Clears out data from bag.

Return Value

mixed Whatever data was contained

Source code

<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\HttpFoundation\Session;

/**
 * @author Nicolas Grekas <p@tchwork.com>
 *
 * @internal
 */
final class SessionBagProxy implements SessionBagInterface
{
    private $bag;
    private $data;
    private $hasBeenStarted;

    public function __construct(SessionBagInterface $bag, array &$data, &$hasBeenStarted)
    {
        $this->bag = $bag;
        $this->data = &$data;
        $this->hasBeenStarted = &$hasBeenStarted;
    }

    /**
     * @return SessionBagInterface
     */
    public function getBag()
    {
        return $this->bag;
    }

    /**
     * @return bool
     */
    public function isEmpty()
    {
        return empty($this->data[$this->bag->getStorageKey()]);
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return $this->bag->getName();
    }

    /**
     * {@inheritdoc}
     */
    public function initialize(array &$array)
    {
        $this->hasBeenStarted = true;
        $this->data[$this->bag->getStorageKey()] = &$array;

        $this->bag->initialize($array);
    }

    /**
     * {@inheritdoc}
     */
    public function getStorageKey()
    {
        return $this->bag->getStorageKey();
    }

    /**
     * {@inheritdoc}
     */
    public function clear()
    {
        return $this->bag->clear();
    }
}