AbstractProxy

abstract class AbstractProxy

Properties

protected bool $wrapper Flag if handler wraps an internal PHP session handler (using \SessionHandler).
protected string $saveHandlerName

Methods

public string getSaveHandlerName() Gets the session.save_handler name.
public bool isSessionHandlerInterface() Is this proxy handler and instance of \SessionHandlerInterface.
public bool isWrapper() Returns true if this handler wraps an internal PHP session save handler using \SessionHandler.
public bool isActive() Has a session started?
public string getId() Gets the session ID.
public setId(string $id) Sets the session ID.
public string getName() Gets the session name.
public setName(string $name) Sets the session name.

Details

at line 36

getSaveHandlerName()

public string getSaveHandlerName()

Gets the session.save_handler name.

Return Value

string
at line 46

isSessionHandlerInterface()

public bool isSessionHandlerInterface()

Is this proxy handler and instance of \SessionHandlerInterface.

Return Value

bool
at line 56

isWrapper()

public bool isWrapper()

Returns true if this handler wraps an internal PHP session save handler using \SessionHandler.

Return Value

bool
at line 66

isActive()

public bool isActive()

Has a session started?

Return Value

bool
at line 76

getId()

public string getId()

Gets the session ID.

Return Value

string
at line 88

setId()

public setId(string $id)

Sets the session ID.

Parameters

string $id

Exceptions

LogicException
at line 102

getName()

public string getName()

Gets the session name.

Return Value

string
at line 114

setName()

public setName(string $name)

Sets the session name.

Parameters

string $name

Exceptions

LogicException

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\Storage\Proxy;

/**
 * @author Drak <drak@zikula.org>
 */
abstract class AbstractProxy
{
    /**
     * Flag if handler wraps an internal PHP session handler (using \SessionHandler).
     *
     * @var bool
     */
    protected $wrapper = false;

    /**
     * @var string
     */
    protected $saveHandlerName;

    /**
     * Gets the session.save_handler name.
     *
     * @return string
     */
    public function getSaveHandlerName()
    {
        return $this->saveHandlerName;
    }

    /**
     * Is this proxy handler and instance of \SessionHandlerInterface.
     *
     * @return bool
     */
    public function isSessionHandlerInterface()
    {
        return $this instanceof \SessionHandlerInterface;
    }

    /**
     * Returns true if this handler wraps an internal PHP session save handler using \SessionHandler.
     *
     * @return bool
     */
    public function isWrapper()
    {
        return $this->wrapper;
    }

    /**
     * Has a session started?
     *
     * @return bool
     */
    public function isActive()
    {
        return \PHP_SESSION_ACTIVE === session_status();
    }

    /**
     * Gets the session ID.
     *
     * @return string
     */
    public function getId()
    {
        return session_id();
    }

    /**
     * Sets the session ID.
     *
     * @param string $id
     *
     * @throws \LogicException
     */
    public function setId($id)
    {
        if ($this->isActive()) {
            throw new \LogicException('Cannot change the ID of an active session');
        }

        session_id($id);
    }

    /**
     * Gets the session name.
     *
     * @return string
     */
    public function getName()
    {
        return session_name();
    }

    /**
     * Sets the session name.
     *
     * @param string $name
     *
     * @throws \LogicException
     */
    public function setName($name)
    {
        if ($this->isActive()) {
            throw new \LogicException('Cannot change the name of an active session');
        }

        session_name($name);
    }
}