# 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);
        }
    }