Added back memcached support for sessions

This commit is contained in:
Josh Sherman 2013-02-12 00:20:48 -05:00
parent 4b414783f0
commit 5ccdeb64a7
2 changed files with 42 additions and 2 deletions

View file

@ -138,7 +138,7 @@ class Session extends Object
if (is_array($session))
{
if (isset($session['handler']) && in_array($session['handler'], array('files', 'mysql')))
if (isset($session['handler']) && in_array($session['handler'], array('files', 'memcache', 'mysql')))
{
$this->handler = $session['handler'];
@ -162,6 +162,11 @@ class Session extends Object
{
$this->handler = 'files';
}
elseif ($session == 'memcache')
{
$this->handler = 'memcache';
$datasource = 'memcache';
}
elseif ($session == 'mysql')
{
$this->handler = 'mysql';
@ -176,6 +181,21 @@ class Session extends Object
session_start();
break;
case 'memcache':
$hostname = 'localhost';
$port = 11211;
if ($datasource !== false && isset($datasources[$datasource]))
{
$hostname = $datasources[$datasource]['hostname'];
$port = $datasources[$datasource]['port'];
}
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', 'tcp://' . $hostname . ':' . $port . '?persistent=1&weight=1&timeout=1&retry_interval=15');
session_start();
break;
case 'mysql':
if ($datasource !== false && isset($datasources[$datasource]))
{

22
jar.php
View file

@ -7492,7 +7492,7 @@ class Session extends Object
if (is_array($session))
{
if (isset($session['handler']) && in_array($session['handler'], array('files', 'mysql')))
if (isset($session['handler']) && in_array($session['handler'], array('files', 'memcache', 'mysql')))
{
$this->handler = $session['handler'];
@ -7516,6 +7516,11 @@ class Session extends Object
{
$this->handler = 'files';
}
elseif ($session == 'memcache')
{
$this->handler = 'memcache';
$datasource = 'memcache';
}
elseif ($session == 'mysql')
{
$this->handler = 'mysql';
@ -7530,6 +7535,21 @@ class Session extends Object
session_start();
break;
case 'memcache':
$hostname = 'localhost';
$port = 11211;
if ($datasource !== false && isset($datasources[$datasource]))
{
$hostname = $datasources[$datasource]['hostname'];
$port = $datasources[$datasource]['port'];
}
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', 'tcp://' . $hostname . ':' . $port . '?persistent=1&weight=1&timeout=1&retry_interval=15');
session_start();
break;
case 'mysql':
if ($datasource !== false && isset($datasources[$datasource]))
{