]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/MemcachePlugin.php
Merge branch 'master' into testing
[quix0rs-gnu-social.git] / plugins / MemcachePlugin.php
index fbc2802f78f984d1bc3acd79c29f566f9920f578..2bc4b892bd6a287c9750c73060f7522f68db5bf5 100644 (file)
@@ -59,6 +59,8 @@ class MemcachePlugin extends Plugin
 
     public $persistent = null;
 
+    public $defaultExpiry = 86400; // 24h
+
     /**
      * Initialize the plugin
      *
@@ -110,6 +112,9 @@ class MemcachePlugin extends Plugin
     function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
     {
         $this->_ensureConn();
+        if ($expiry === null) {
+            $expiry = $this->defaultExpiry;
+        }
         $success = $this->_conn->set($key, $value, $flag, $expiry);
         Event::handle('EndCacheSet', array($key, $value, $flag,
                                            $expiry));
@@ -165,20 +170,18 @@ class MemcachePlugin extends Plugin
             $this->_conn = new Memcache();
 
             if (is_array($this->servers)) {
-                foreach ($this->servers as $server) {
-                    list($host, $port) = explode(';', $server);
-                    if (empty($port)) {
-                        $port = 11211;
-                    }
-
-                    $this->_conn->addServer($host, $port, $this->persistent);
-                }
+                $servers = $this->servers;
             } else {
-                $this->_conn->addServer($this->servers, $this->persistent);
-                list($host, $port) = explode(';', $this->servers);
-                if (empty($port)) {
+                $servers = array($this->servers);
+            }
+            foreach ($servers as $server) {
+                if (strpos($server, ';') !== false) {
+                    list($host, $port) = explode(';', $server);
+                } else {
+                    $host = $server;
                     $port = 11211;
                 }
+
                 $this->_conn->addServer($host, $port, $this->persistent);
             }