Вход Регистрация
Файл: monst/Xsolla/Symfony/Component/HttpFoundation/Session/Session.php
Строк: 225
<?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 SymfonyComponentHttpFoundationSession;

use 
SymfonyComponentHttpFoundationSessionStorageSessionStorageInterface;
use 
SymfonyComponentHttpFoundationSessionAttributeAttributeBag;
use 
SymfonyComponentHttpFoundationSessionAttributeAttributeBagInterface;
use 
SymfonyComponentHttpFoundationSessionFlashFlashBag;
use 
SymfonyComponentHttpFoundationSessionFlashFlashBagInterface;
use 
SymfonyComponentHttpFoundationSessionStorageNativeSessionStorage;

/**
 * Session.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Drak <drak@zikula.org>
 */
class Session implements SessionInterfaceIteratorAggregateCountable
{
    
/**
     * Storage driver.
     *
     * @var SessionStorageInterface
     */
    
protected $storage;

    
/**
     * @var string
     */
    
private $flashName;

    
/**
     * @var string
     */
    
private $attributeName;

    
/**
     * Constructor.
     *
     * @param SessionStorageInterface $storage    A SessionStorageInterface instance
     * @param AttributeBagInterface   $attributes An AttributeBagInterface instance, (defaults null for default AttributeBag)
     * @param FlashBagInterface       $flashes    A FlashBagInterface instance (defaults null for default FlashBag)
     */
    
public function __construct(SessionStorageInterface $storage nullAttributeBagInterface $attributes nullFlashBagInterface $flashes null)
    {
        
$this->storage $storage ?: new NativeSessionStorage();

        
$attributes $attributes ?: new AttributeBag();
        
$this->attributeName $attributes->getName();
        
$this->registerBag($attributes);

        
$flashes $flashes ?: new FlashBag();
        
$this->flashName $flashes->getName();
        
$this->registerBag($flashes);
    }

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

    
/**
     * {@inheritdoc}
     */
    
public function has($name)
    {
        return 
$this->getAttributeBag()->has($name);
    }

    
/**
     * {@inheritdoc}
     */
    
public function get($name$default null)
    {
        return 
$this->getAttributeBag()->get($name$default);
    }

    
/**
     * {@inheritdoc}
     */
    
public function set($name$value)
    {
        
$this->getAttributeBag()->set($name$value);
    }

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

    
/**
     * {@inheritdoc}
     */
    
public function replace(array $attributes)
    {
        
$this->getAttributeBag()->replace($attributes);
    }

    
/**
     * {@inheritdoc}
     */
    
public function remove($name)
    {
        return 
$this->getAttributeBag()->remove($name);
    }

    
/**
     * {@inheritdoc}
     */
    
public function clear()
    {
        
$this->storage->getBag($this->attributeName)->clear();
    }

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

    
/**
     * Returns an iterator for attributes.
     *
     * @return ArrayIterator An ArrayIterator instance
     */
    
public function getIterator()
    {
        return new 
ArrayIterator($this->getAttributeBag()->all());
    }

    
/**
     * Returns the number of attributes.
     *
     * @return int The number of attributes
     */
    
public function count()
    {
        return 
count($this->getAttributeBag()->all());
    }

    
/**
     * {@inheritdoc}
     */
    
public function invalidate($lifetime null)
    {
        
$this->storage->clear();

        return 
$this->migrate(true$lifetime);
    }

    
/**
     * {@inheritdoc}
     */
    
public function migrate($destroy false$lifetime null)
    {
        return 
$this->storage->regenerate($destroy$lifetime);
    }

    
/**
     * {@inheritdoc}
     */
    
public function save()
    {
        
$this->storage->save();
    }

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

    
/**
     * {@inheritdoc}
     */
    
public function setId($id)
    {
        
$this->storage->setId($id);
    }

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

    
/**
     * {@inheritdoc}
     */
    
public function setName($name)
    {
        
$this->storage->setName($name);
    }

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

    
/**
     * {@inheritdoc}
     */
    
public function registerBag(SessionBagInterface $bag)
    {
        
$this->storage->registerBag($bag);
    }

    
/**
     * {@inheritdoc}
     */
    
public function getBag($name)
    {
        return 
$this->storage->getBag($name);
    }

    
/**
     * Gets the flashbag interface.
     *
     * @return FlashBagInterface
     */
    
public function getFlashBag()
    {
        return 
$this->getBag($this->flashName);
    }

    
/**
     * Gets the attributebag interface.
     *
     * Note that this method was added to help with IDE autocompletion.
     *
     * @return AttributeBagInterface
     */
    
private function getAttributeBag()
    {
        return 
$this->storage->getBag($this->attributeName);
    }
}
Онлайн: 1
Реклама