MDL-36047 cache: Fixed up issues with PHP 5.3.2 and 5.3.7
authorSam Hemelryk <sam@moodle.com>
Mon, 15 Oct 2012 03:24:19 +0000 (11:24 +0800)
committerSam Hemelryk <sam@moodle.com>
Mon, 15 Oct 2012 04:35:23 +0000 (12:35 +0800)
cache/classes/config.php
cache/classes/loaders.php
cache/locallib.php

index 0917a83..682ef18 100644 (file)
@@ -170,7 +170,7 @@ class cache_config {
             $plugin = $store['plugin'];
             $class = 'cachestore_'.$plugin;
             $exists = array_key_exists($plugin, $availableplugins);
-            if (!$exists && (!class_exists($class) || !is_subclass_of($class, 'cache_store'))) {
+            if (!$exists) {
                 // Not a valid plugin, or has been uninstalled, just skip it an carry on.
                 debugging('Invalid cache store in config. Not an available plugin.', DEBUG_DEVELOPER);
                 continue;
index 8595808..aa6a0ed 100644 (file)
@@ -40,7 +40,7 @@ defined('MOODLE_INTERNAL') || die();
  * @copyright  2012 Sam Hemelryk
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class cache implements cache_loader, cache_is_key_aware {
+class cache implements cache_loader {
 
     /**
      * We need a timestamp to use within the cache API.
index 2bc3797..08a3ca9 100644 (file)
@@ -136,7 +136,8 @@ class cache_config_writer extends cache_config {
                 throw new cache_exception('Invalid cache plugin specified. The plugin does not contain the required class.');
             }
         }
-        if (!is_subclass_of($class, 'cache_store')) {
+        $reflection = new ReflectionClass($class);
+        if (!$reflection->implementsInterface('cache_store')) {
             throw new cache_exception('Invalid cache plugin specified. The plugin does not extend the required class.');
         }
         if (!$class::are_requirements_met()) {
@@ -400,7 +401,7 @@ class cache_config_writer extends cache_config {
                 $definition['component'] = $component;
                 $definition['area'] = $area;
                 if (array_key_exists($id, $definitions)) {
-                    debugging('Error: duplicate cache definition found with name '.$name, DEBUG_DEVELOPER);
+                    debugging('Error: duplicate cache definition found with id: '.$id, DEBUG_DEVELOPER);
                     continue;
                 }
                 $definitions[$id] = $definition;