]> BookStack Code Mirror - bookstack/commitdiff
Made memcached config allow mulitple servers
authorDan Brown <redacted>
Sat, 5 Mar 2016 09:47:24 +0000 (09:47 +0000)
committerDan Brown <redacted>
Sat, 5 Mar 2016 09:47:24 +0000 (09:47 +0000)
.env.example
config/cache.php

index 9d42d7487d89b4a45d8a9dc7b88c9c968d42acf0..5661cda2209f753c3827e58a14d73a5f69445fd1 100644 (file)
@@ -17,6 +17,12 @@ SESSION_DRIVER=file
 #SESSION_DRIVER=memcached
 QUEUE_DRIVER=sync
 
 #SESSION_DRIVER=memcached
 QUEUE_DRIVER=sync
 
+# Memcached settings
+# If using a UNIX socket path for the host, set the port to 0
+# This follows the following format: HOST:PORT:WEIGHT
+# For multiple servers separate with a comma
+MEMCACHED_SERVERS=127.0.0.1:11211:100
+
 # Storage
 STORAGE_TYPE=local
 # Amazon S3 Config
 # Storage
 STORAGE_TYPE=local
 # Amazon S3 Config
@@ -56,9 +62,4 @@ MAIL_HOST=localhost
 MAIL_PORT=1025
 MAIL_USERNAME=null
 MAIL_PASSWORD=null
 MAIL_PORT=1025
 MAIL_USERNAME=null
 MAIL_PASSWORD=null
-MAIL_ENCRYPTION=null
-
-# Memcached settings
-#MEMCACHED_HOST=127.0.0.1
-# If using a UNIX socket path for the host, set the port to 0
-#MEMCACHED_PORT=11211
\ No newline at end of file
+MAIL_ENCRYPTION=null
\ No newline at end of file
index b00a9989ee3bd894b19d584e4556e138a55aa367..076a0299fc1196329d51875e8c64dbe678b7edc4 100644 (file)
@@ -1,5 +1,18 @@
 <?php
 
 <?php
 
+// MEMCACHED - Split out configuration into an array
+if (env('CACHE_DRIVER') === 'memcached') {
+    $memcachedServerKeys = ['host', 'port', 'weight'];
+    $memcachedServers = explode(',', trim(env('MEMCACHED_SERVERS', '127.0.0.1:11211:100'), ','));
+    foreach ($memcachedServers as $index => $memcachedServer) {
+        $memcachedServerDetails = explode(':', $memcachedServer);
+        $components = count($memcachedServerDetails);
+        if ($components < 2) $memcachedServerDetails[] = '11211';
+        if ($components < 3) $memcachedServerDetails[] = '100';
+        $memcachedServers[$index] = array_combine($memcachedServerKeys, $memcachedServerDetails);
+    }
+}
+
 return [
 
     /*
 return [
 
     /*
@@ -49,13 +62,7 @@ return [
 
         'memcached' => [
             'driver'  => 'memcached',
 
         'memcached' => [
             'driver'  => 'memcached',
-            'servers' => [
-                [
-                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
-                    'port' => env('MEMCACHED_PORT', 11211),
-                    'weight' => 100,
-                ],
-            ],
+            'servers' => env('CACHE_DRIVER') === 'memcached' ? $memcachedServers : [],
         ],
 
         'redis' => [
         ],
 
         'redis' => [