2015-08-17 17:00:26 -07:00
< ? 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 ;
/**
* AbstractProxy .
*
* @ 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 bool
*/
protected $active = 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 ()
{
2016-04-20 09:56:34 -07:00
return $this instanceof \SessionHandlerInterface ;
2015-08-17 17:00:26 -07:00
}
/**
* 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 ()
{
if ( PHP_VERSION_ID >= 50400 ) {
return $this -> active = \PHP_SESSION_ACTIVE === session_status ();
}
return $this -> active ;
}
/**
* Sets the active flag .
*
* Has no effect under PHP 5.4 + as status is detected
* automatically in isActive ()
*
* @ internal
*
* @ param bool $flag
*
* @ throws \LogicException
*/
public function setActive ( $flag )
{
if ( PHP_VERSION_ID >= 50400 ) {
throw new \LogicException ( 'This method is disabled in PHP 5.4.0+' );
}
$this -> active = ( bool ) $flag ;
}
/**
* 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 );
}
}