Code Duplication    Length = 22-22 lines in 2 locations

src/RedisProxy.php 2 locations

@@ 169-190 (lines=22) @@
166
     * @return boolean true on success
167
     * @throws RedisProxyException if number of arguments is wrong
168
     */
169
    public function mset(...$dictionary)
170
    {
171
        if (is_array($dictionary[0])) {
172
            $result = $this->driver->mset(...$dictionary);
173
            return $this->transformResult($result);
174
        }
175
176
        $keys = array_values(array_filter($dictionary, function ($key) {
177
            return $key % 2 == 0;
178
        }, ARRAY_FILTER_USE_KEY));
179
        $values = array_values(array_filter($dictionary, function ($key) {
180
            return $key % 2 == 1;
181
        }, ARRAY_FILTER_USE_KEY));
182
183
        if (count($keys) != count($values)) {
184
            throw new RedisProxyException('Wrong number of arguments for mset');
185
        }
186
187
        $dictionary = array_combine($keys, $values);
188
        $result = $this->driver->mset($dictionary);
189
        return $this->transformResult($result);
190
    }
191
192
    /**
193
     * @param string $key
@@ 303-324 (lines=22) @@
300
     * @return boolean true on success
301
     * @throws RedisProxyException if number of arguments is wrong
302
     */
303
    public function hmset($key, ...$dictionary)
304
    {
305
        if (is_array($dictionary[0])) {
306
            $result = $this->driver->hmset($key, ...$dictionary);
307
            return $this->transformResult($result);
308
        }
309
310
        $fields = array_values(array_filter($dictionary, function ($dictionaryKey) {
311
            return $dictionaryKey % 2 == 0;
312
        }, ARRAY_FILTER_USE_KEY));
313
        $values = array_values(array_filter($dictionary, function ($dictionaryKey) {
314
            return $dictionaryKey % 2 == 1;
315
        }, ARRAY_FILTER_USE_KEY));
316
317
        if (count($fields) != count($values)) {
318
            throw new RedisProxyException('Wrong number of arguments for hmset');
319
        }
320
321
        $dictionary = array_combine($fields, $values);
322
        $result = $this->driver->hmset($key, $dictionary);
323
        return $this->transformResult($result);
324
    }
325
326
    /**
327
     * Incrementally iterate hash fields and associated values