Вход Регистрация
Файл: vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php
Строк: 110
<?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 SymfonyComponentHttpFoundationSessionAttribute;

/**
 * This class relates to session attribute storage.
 *
 * @implements IteratorAggregate<string, mixed>
 */
class AttributeBag implements AttributeBagInterfaceIteratorAggregateCountable
{
    private 
string $name 'attributes';
    private 
string $storageKey;

    protected 
$attributes = [];

    
/**
     * @param string $storageKey The key used to store attributes in the session
     */
    
public function __construct(string $storageKey '_sf2_attributes')
    {
        
$this->storageKey $storageKey;
    }

    public function 
getName(): string
    
{
        return 
$this->name;
    }

    
/**
     * @return void
     */
    
public function setName(string $name)
    {
        
$this->name $name;
    }

    
/**
     * @return void
     */
    
public function initialize(array &$attributes)
    {
        
$this->attributes = &$attributes;
    }

    public function 
getStorageKey(): string
    
{
        return 
$this->storageKey;
    }

    public function 
has(string $name): bool
    
{
        return 
array_key_exists($name$this->attributes);
    }

    public function 
get(string $namemixed $default null): mixed
    
{
        return 
array_key_exists($name$this->attributes) ? $this->attributes[$name] : $default;
    }

    
/**
     * @return void
     */
    
public function set(string $namemixed $value)
    {
        
$this->attributes[$name] = $value;
    }

    public function 
all(): array
    {
        return 
$this->attributes;
    }

    
/**
     * @return void
     */
    
public function replace(array $attributes)
    {
        
$this->attributes = [];
        foreach (
$attributes as $key => $value) {
            
$this->set($key$value);
        }
    }

    public function 
remove(string $name): mixed
    
{
        
$retval null;
        if (
array_key_exists($name$this->attributes)) {
            
$retval $this->attributes[$name];
            unset(
$this->attributes[$name]);
        }

        return 
$retval;
    }

    public function 
clear(): mixed
    
{
        
$return $this->attributes;
        
$this->attributes = [];

        return 
$return;
    }

    
/**
     * Returns an iterator for attributes.
     *
     * @return ArrayIterator<string, mixed>
     */
    
public function getIterator(): ArrayIterator
    
{
        return new 
ArrayIterator($this->attributes);
    }

    
/**
     * Returns the number of attributes.
     */
    
public function count(): int
    
{
        return 
count($this->attributes);
    }
}
Онлайн: 2
Реклама