@@ -22,6 +22,9 @@ class Evictor
22
22
const DEFAULT_SLEEP_TIMEOUT = 20000 ;
23
23
const CONFIG_PATH_ENABLED = 'cache_evict/enabled ' ;
24
24
const CONFIG_PATH_LIMIT = 'cache_evict/limit ' ;
25
+ const BACKEND_OPTION_KEY_SERVER = 'server ' ;
26
+ const BACKEND_OPTION_KEY_PORT = 'port ' ;
27
+ const BACKEND_OPTION_KEY_DATABASE = 'database ' ;
25
28
26
29
/**
27
30
* @var DeploymentConfig
@@ -60,11 +63,8 @@ public function evict(): int
60
63
$ name
61
64
));
62
65
63
- if (!isset (
64
- $ cacheConfig ['backend_options ' ]['server ' ],
65
- $ cacheConfig ['backend_options ' ]['port ' ],
66
- $ cacheConfig ['backend_options ' ]['database ' ]
67
- )) {
66
+ $ backendOptions = $ this ->getConfigBackendOptions ((array )$ cacheConfig );
67
+ if (!$ this ->validateBackendOptions ($ backendOptions )) {
68
68
$ this ->logger ->debug (sprintf (
69
69
'Cache config for database "%s" config is not valid ' ,
70
70
$ name
@@ -74,9 +74,9 @@ public function evict(): int
74
74
}
75
75
76
76
$ dbKeys = $ this ->run (
77
- (string )$ cacheConfig [ ' backend_options ' ][ ' server ' ],
78
- (int )$ cacheConfig [ ' backend_options ' ][ ' port ' ],
79
- (int )$ cacheConfig [ ' backend_options ' ][ ' database ' ]
77
+ (string )$ backendOptions [ self :: BACKEND_OPTION_KEY_SERVER ],
78
+ (int )$ backendOptions [ self :: BACKEND_OPTION_KEY_PORT ],
79
+ (int )$ backendOptions [ self :: BACKEND_OPTION_KEY_DATABASE ]
80
80
);
81
81
$ evictedKeys += $ dbKeys ;
82
82
@@ -86,6 +86,41 @@ public function evict(): int
86
86
return $ evictedKeys ;
87
87
}
88
88
89
+ /**
90
+ * Get Cache Config Value
91
+ *
92
+ * @param array $cacheConfig
93
+ * @return array
94
+ */
95
+ private function getConfigBackendOptions (array $ cacheConfig ): array
96
+ {
97
+ $ backendOptions = [];
98
+ if (isset ($ cacheConfig ['backend_options ' ])) {
99
+ $ backendOptions = $ cacheConfig ['backend_options ' ];
100
+ }
101
+ if (isset ($ cacheConfig ['backend_options ' ]['remote_backend_options ' ])) {
102
+ $ backendOptions = $ cacheConfig ['backend_options ' ]['remote_backend_options ' ];
103
+ }
104
+ return (array )$ backendOptions ;
105
+ }
106
+
107
+ /**
108
+ * Validate Cache Configuration
109
+ *
110
+ * @param array $backendOptions
111
+ * @return bool
112
+ */
113
+ private function validateBackendOptions (array $ backendOptions ): bool
114
+ {
115
+ if (isset ($ backendOptions [self ::BACKEND_OPTION_KEY_SERVER ])
116
+ && isset ($ backendOptions [self ::BACKEND_OPTION_KEY_PORT ])
117
+ && isset ($ backendOptions [self ::BACKEND_OPTION_KEY_DATABASE ])
118
+ ) {
119
+ return true ;
120
+ }
121
+ return false ;
122
+ }
123
+
89
124
/**
90
125
* @param string $host
91
126
* @param int $port
0 commit comments