Skip to content

Commit 8a992db

Browse files
committed
Check if Memcached key exists
1 parent 58c19e3 commit 8a992db

2 files changed

Lines changed: 22 additions & 7 deletions

File tree

src/Dashboards/Memcached/MemcacheCompatibility/RunCommandTrait.php

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,26 @@ public function getKeys(): array {
107107
*
108108
* @param string $key
109109
*
110-
* @return string
110+
* @return string|false
111111
*/
112-
public function getKey(string $key): string {
112+
public function getKey(string $key) {
113113
$data = $this->runCommand('get '.$key);
114114

115-
return $data[1];
115+
if (!isset($data[0])) {
116+
return false;
117+
}
118+
119+
return !isset($data[1]) || $data[1] === 'N;' ? '' : $data[1];
120+
}
121+
122+
/**
123+
* Check if key exists.
124+
*
125+
* @param string $key
126+
*
127+
* @return bool
128+
*/
129+
public function exists(string $key): bool {
130+
return $this->getKey($key) !== false;
116131
}
117132
}

src/Dashboards/Memcached/MemcachedTrait.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ private function deleteAllKeys($memcached): string {
7878
private function deleteKey($memcached): string {
7979
$keys = explode(',', Http::get('delete'));
8080

81-
if (count($keys) === 1 && @$memcached->get($keys[0]) !== false) {
81+
if (count($keys) === 1 && $memcached->exists($keys[0])) {
8282
$memcached->delete($keys[0]);
8383
$message = sprintf('Key "%s" has been deleted.', $keys[0]);
8484
} elseif (count($keys) > 1) {
@@ -175,7 +175,7 @@ private function mainDashboard($memcached): string {
175175
private function viewKey($memcached): string {
176176
$key = Http::get('key');
177177

178-
if ($memcached->get($key) === false) {
178+
if (!$memcached->exists($key)) {
179179
Http::redirect();
180180
}
181181

@@ -223,7 +223,7 @@ private function import($memcached): void {
223223
if ($_FILES['import']['type'] === 'text/plain') {
224224
$key_name = Http::post('key_name');
225225

226-
if ($memcached->get($key_name) === false) {
226+
if (!$memcached->exists($key_name)) {
227227
$value = file_get_contents($_FILES['import']['tmp_name']);
228228

229229
$memcached->store($key_name, $value, Http::post('expire', 'int'));
@@ -248,7 +248,7 @@ private function form($memcached): string {
248248
$encoder = Http::get('encoder', 'string', 'none');
249249
$value = Http::post('value');
250250

251-
if (isset($_GET['key']) && $memcached->get($key)) {
251+
if (isset($_GET['key']) && $memcached->exists($key)) {
252252
$value = $memcached->getKey($key);
253253
}
254254

0 commit comments

Comments
 (0)