diff --git a/common/framework/Cache.php b/common/framework/Cache.php index ec627352b..c678b0e65 100644 --- a/common/framework/Cache.php +++ b/common/framework/Cache.php @@ -51,7 +51,7 @@ class Cache } $config = isset($config['servers']) ? $config['servers'] : array(); } - elseif (preg_match('/^(apc|dummy|file|memcache|redis|sqlite|wincache|xcache)/', strval(array_first($config)), $matches)) + elseif (preg_match('/^(apc|dummy|memcached?|redis|sqlite|wincache|xcache)/', strval(array_first($config)), $matches)) { $driver_name = $matches[1] . ($matches[1] === 'memcache' ? 'd' : ''); $class_name = '\\Rhymix\\Framework\\Drivers\\Cache\\' . $driver_name; @@ -62,7 +62,7 @@ class Cache $class_name = null; } - if ($class_name && class_exists($class_name) && $class_name::isSupported()) + if ($class_name !== null && $driver_name !== 'file' && class_exists($class_name) && $class_name::isSupported()) { self::$_driver = $class_name::getInstance($config); self::$_driver_name = strtolower($driver_name); diff --git a/common/framework/drivers/cache/dummy.php b/common/framework/drivers/cache/dummy.php index 9d97a7a95..c69e3c3e9 100644 --- a/common/framework/drivers/cache/dummy.php +++ b/common/framework/drivers/cache/dummy.php @@ -22,6 +22,16 @@ class Dummy extends File implements \Rhymix\Framework\Drivers\CacheInterface */ public $data = array(); + /** + * Override the isSupported() method of the file driver. + * + * @return bool + */ + public static function isSupported() + { + return true; + } + /** * Get the value of a key. * diff --git a/common/framework/drivers/cache/file.php b/common/framework/drivers/cache/file.php index bd1d5d62a..f40fb5669 100644 --- a/common/framework/drivers/cache/file.php +++ b/common/framework/drivers/cache/file.php @@ -52,15 +52,14 @@ class File implements \Rhymix\Framework\Drivers\CacheInterface } /** - * Check if the current cache driver is supported on this server. - * - * This method returns true on success and false on failure. + * Since Rhymix 2.1, This method always returns false. + * The file cache driver can only be used through the dummy driver. * * @return bool */ public static function isSupported() { - return true; + return false; } /** @@ -201,6 +200,6 @@ class File implements \Rhymix\Framework\Drivers\CacheInterface protected function _getFilename($key) { $hash = sha1($key); - return $this->_dir . '/' . substr($hash, 0, 2) . '/' . substr($hash, 2, 2) . '/' . $hash . '.php'; + return $this->_dir . '/' . substr($hash, 0, 2) . '/' . $hash . '.php'; } }