public function cacheTagVersions(array $tagNames) { // array_values here used for reindexing array from 0 $needToRequest = array_values(array_diff($tagNames, array_keys($this->actualTagVersions))); if (count($needToRequest) < 1) { return; } $needToRequestPrefixed = ArrayTools::addPrefixToArrayValues($this->prefix, $needToRequest); $newTagVersions = $this->connection()->mget($needToRequestPrefixed); $newTagVersions = array_combine($needToRequest, $newTagVersions); $flush = []; foreach ($newTagVersions as $newTagKey => $newTagVersion) { if (!$newTagVersion) { $flush[] = $newTagKey; } } $flush = $this->flushTags($flush); $this->actualTagVersions = array_merge($this->actualTagVersions, $newTagVersions, $flush); }
public function testAddPrefixToArrayValues() { $values = [0 => 'aaa', 1 => 'bbb']; $prefixedValues = ArrayTools::addPrefixToArrayValues('prefix:', $values); $this->assertEquals(['prefix:aaa', 'prefix:bbb'], $prefixedValues); }
/** * @param array $keys * * @return array|void */ public function mget(array $keys) { $keys = ArrayTools::addPrefixToArrayValues($this->prefix, $keys); $data = $this->connection()->mget($keys); $data = $this->serializer->deserialize($this->prefix, $data); return $data; }