Quellcode durchsuchen

Users can now register their own \Predis\RedisServerProfile class with one or more aliases.

Daniele Alessandri vor 15 Jahren
Ursprung
Commit
ad2381a305
1 geänderte Dateien mit 21 neuen und 0 gelöschten Zeilen
  1. 21 0
      lib/Predis.php

+ 21 - 0
lib/Predis.php

@@ -1195,6 +1195,27 @@ abstract class RedisServerProfile {
         );
     }
 
+    public static function registerProfile($profileClass, $aliases) {
+        if (!isset(self::$_serverProfiles)) {
+            self::$_serverProfiles = self::predisServerProfiles();
+        }
+
+        $profileReflection = new \ReflectionClass($profileClass);
+
+        if (!$profileReflection->isSubclassOf('\Predis\RedisServerProfile')) {
+            throw new ClientException("Cannot register '$profileClass' as it is not a valid profile class");
+        }
+
+        if (is_array($aliases)) {
+            foreach ($aliases as $alias) {
+                self::$_serverProfiles[$alias] = $profileClass;
+            }
+        }
+        else {
+            self::$_serverProfiles[$aliases] = $profileClass;
+        }
+    }
+
     public static function get($version) {
         if (!isset(self::$_serverProfiles)) {
             self::$_serverProfiles = self::predisServerProfiles();