mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 02:31:40 +09:00
Update admin module to use new Cache system
This commit is contained in:
parent
7d80bbe27d
commit
89ae581e55
11 changed files with 32 additions and 16 deletions
|
|
@ -46,7 +46,6 @@ if(file_exists(RX_BASEDIR . 'config/config.user.inc.php'))
|
||||||
* Define the list of legacy class names for the autoloader.
|
* Define the list of legacy class names for the autoloader.
|
||||||
*/
|
*/
|
||||||
$GLOBALS['RX_AUTOLOAD_FILE_MAP'] = array_change_key_case(array(
|
$GLOBALS['RX_AUTOLOAD_FILE_MAP'] = array_change_key_case(array(
|
||||||
'CacheBase' => 'classes/cache/CacheHandler.class.php',
|
|
||||||
'CacheHandler' => 'classes/cache/CacheHandler.class.php',
|
'CacheHandler' => 'classes/cache/CacheHandler.class.php',
|
||||||
'Context' => 'classes/context/Context.class.php',
|
'Context' => 'classes/context/Context.class.php',
|
||||||
'DB' => 'classes/db/DB.class.php',
|
'DB' => 'classes/db/DB.class.php',
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ class Cache
|
||||||
foreach (Storage::readDirectory(__DIR__ . '/drivers/cache', false) as $filename)
|
foreach (Storage::readDirectory(__DIR__ . '/drivers/cache', false) as $filename)
|
||||||
{
|
{
|
||||||
$driver_name = substr($filename, 0, -4);
|
$driver_name = substr($filename, 0, -4);
|
||||||
$class_name = '\Rhymix\Framework\Drivers\Cache\'' . $driver_name;
|
$class_name = '\Rhymix\Framework\Drivers\Cache\\' . $driver_name;
|
||||||
if ($class_name::isSupported())
|
if ($class_name::isSupported())
|
||||||
{
|
{
|
||||||
$result[] = $driver_name;
|
$result[] = $driver_name;
|
||||||
|
|
@ -74,13 +74,30 @@ class Cache
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the currently enabled cache driver.
|
* Get the currently enabled cache driver, or a named driver with the given settings.
|
||||||
*
|
*
|
||||||
* return object|null
|
* @param string $name (optional)
|
||||||
|
* @param array $config (optional)
|
||||||
|
* @return object|null
|
||||||
*/
|
*/
|
||||||
public static function getCacheDriver()
|
public static function getCacheDriver($name = null, array $config = [])
|
||||||
{
|
{
|
||||||
return self::$_driver;
|
if ($name === null)
|
||||||
|
{
|
||||||
|
return self::$_driver;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$class_name = '\\Rhymix\\Framework\\Drivers\\Cache\\' . $name;
|
||||||
|
if (class_exists($class_name) && $class_name::isSupported() && $class_name::validateSettings($config))
|
||||||
|
{
|
||||||
|
return new $class_name($config);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
2
common/framework/drivers/cache/apc.php
vendored
2
common/framework/drivers/cache/apc.php
vendored
|
|
@ -38,7 +38,7 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
|
||||||
* @param mixed $config
|
* @param mixed $config
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateSettings($config)
|
public static function validateSettings($config)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
common/framework/drivers/cache/file.php
vendored
2
common/framework/drivers/cache/file.php
vendored
|
|
@ -49,7 +49,7 @@ class File implements \Rhymix\Framework\Drivers\CacheInterface
|
||||||
* @param mixed $config
|
* @param mixed $config
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateSettings($config)
|
public static function validateSettings($config)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
common/framework/drivers/cache/memcached.php
vendored
2
common/framework/drivers/cache/memcached.php
vendored
|
|
@ -66,7 +66,7 @@ class Memcached implements \Rhymix\Framework\Drivers\CacheInterface
|
||||||
* @param mixed $config
|
* @param mixed $config
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateSettings($config)
|
public static function validateSettings($config)
|
||||||
{
|
{
|
||||||
if (class_exists('\\Memcached'))
|
if (class_exists('\\Memcached'))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
2
common/framework/drivers/cache/redis.php
vendored
2
common/framework/drivers/cache/redis.php
vendored
|
|
@ -68,7 +68,7 @@ class Redis implements \Rhymix\Framework\Drivers\CacheInterface
|
||||||
* @param mixed $config
|
* @param mixed $config
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateSettings($config)
|
public static function validateSettings($config)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
||||||
2
common/framework/drivers/cache/wincache.php
vendored
2
common/framework/drivers/cache/wincache.php
vendored
|
|
@ -38,7 +38,7 @@ class WinCache implements \Rhymix\Framework\Drivers\CacheInterface
|
||||||
* @param mixed $config
|
* @param mixed $config
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateSettings($config)
|
public static function validateSettings($config)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
common/framework/drivers/cache/xcache.php
vendored
2
common/framework/drivers/cache/xcache.php
vendored
|
|
@ -38,7 +38,7 @@ class XCache implements \Rhymix\Framework\Drivers\CacheInterface
|
||||||
* @param mixed $config
|
* @param mixed $config
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateSettings($config)
|
public static function validateSettings($config)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ interface CacheInterface
|
||||||
* @param mixed $config
|
* @param mixed $config
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateSettings($config);
|
public static function validateSettings($config);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the value of a key.
|
* Get the value of a key.
|
||||||
|
|
|
||||||
|
|
@ -673,7 +673,7 @@ class adminAdminController extends admin
|
||||||
{
|
{
|
||||||
$cache_config = $vars->object_cache_type;
|
$cache_config = $vars->object_cache_type;
|
||||||
}
|
}
|
||||||
if (!CacheHandler::isSupport($vars->object_cache_type, $cache_config))
|
if (!Rhymix\Framework\Cache::getCacheDriver($vars->object_cache_type, array($cache_config)))
|
||||||
{
|
{
|
||||||
return new Object(-1, 'msg_cache_handler_not_supported');
|
return new Object(-1, 'msg_cache_handler_not_supported');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -456,8 +456,8 @@ class adminAdminView extends admin
|
||||||
{
|
{
|
||||||
$object_cache_config = array_first($object_cache_config);
|
$object_cache_config = array_first($object_cache_config);
|
||||||
}
|
}
|
||||||
$object_cache_types = array('apc', 'file', 'memcached', 'redis', 'wincache');
|
$object_cache_types = Rhymix\Framework\Cache::getSupportedDrivers();
|
||||||
$object_cache_type = preg_match('/^(' . implode('|', $object_cache_types) . ')/', $object_cache_config, $matches) ? $matches[1] : '';
|
$object_cache_type = preg_replace('/^memcache$/', 'memcached', preg_replace('/:.+$/', '', $object_cache_config));
|
||||||
Context::set('object_cache_types', $object_cache_types);
|
Context::set('object_cache_types', $object_cache_types);
|
||||||
Context::set('object_cache_type', $object_cache_type);
|
Context::set('object_cache_type', $object_cache_type);
|
||||||
if ($object_cache_type)
|
if ($object_cache_type)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue