mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-29 19:33:54 +01:00
* API: allow to set a maximum caching time used instead of unlimited caching or a bigger time, eg. in header.inc.php: egw_caching::$max_expiration = 864000; // 10days
This commit is contained in:
parent
7fd4199cba
commit
b6319b43cf
@ -7,7 +7,7 @@
|
|||||||
* @package api
|
* @package api
|
||||||
* @subpackage cache
|
* @subpackage cache
|
||||||
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
|
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
|
||||||
* @copyright (c) 2009-12 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
|
* @copyright (c) 2009-13 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -73,6 +73,13 @@ class egw_cache
|
|||||||
*/
|
*/
|
||||||
static $default_provider; // = array('egw_cache_files');// array('egw_cache_memcache','localhost');
|
static $default_provider; // = array('egw_cache_files');// array('egw_cache_memcache','localhost');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum expiration time, if set unlimited expiration (=0) or bigger expiration times are replaced with that time
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
static $max_expiration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set some data in the cache
|
* Set some data in the cache
|
||||||
*
|
*
|
||||||
@ -98,6 +105,11 @@ class egw_cache
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// limit expiration to configured maximum time
|
||||||
|
if (isset(self::$max_expiration) && (!$expiration || $expiration > self::$max_expiration))
|
||||||
|
{
|
||||||
|
$expiration = self::$max_expiration;
|
||||||
|
}
|
||||||
return $provider->set(self::keys($level,$app,$location),$data,$expiration);
|
return $provider->set(self::keys($level,$app,$location),$data,$expiration);
|
||||||
}
|
}
|
||||||
throw new egw_exception_wrong_parameter(__METHOD__."() unknown level '$level'!");
|
throw new egw_exception_wrong_parameter(__METHOD__."() unknown level '$level'!");
|
||||||
@ -160,6 +172,11 @@ class egw_cache
|
|||||||
if (is_null($data) && !is_null($callback))
|
if (is_null($data) && !is_null($callback))
|
||||||
{
|
{
|
||||||
$data = call_user_func_array($callback,$callback_params);
|
$data = call_user_func_array($callback,$callback_params);
|
||||||
|
// limit expiration to configured maximum time
|
||||||
|
if (isset(self::$max_expiration) && (!$expiration || $expiration > self::$max_expiration))
|
||||||
|
{
|
||||||
|
$expiration = self::$max_expiration;
|
||||||
|
}
|
||||||
$provider->set($keys,$data,$expiration);
|
$provider->set($keys,$data,$expiration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user