abstract class Redis_Path_AbstractHashLookup in Redis 7.3
Same name and namespace in other branches
- 7.2 lib/Redis/Path/AbstractHashLookup.php \Redis_Path_AbstractHashLookup
Common implementation for Redis-based implementations
Hierarchy
- class \Redis_AbstractBackend implements Redis_BackendInterface
- class \Redis_Path_AbstractHashLookup implements Redis_Path_HashLookupInterface
Expanded class hierarchy of Redis_Path_AbstractHashLookup
File
- lib/
Redis/ Path/ AbstractHashLookup.php, line 6
View source
abstract class Redis_Path_AbstractHashLookup extends Redis_AbstractBackend implements Redis_Path_HashLookupInterface {
/**
* @todo document me
*
* @param string $key
* @param string $hkey
* @param string $hvalue
*/
protected abstract function saveInHash($key, $hkey, $hvalue);
/**
* @todo document me
*
* @param string $key
* @param string $hkey
* @param string $hvalue
*/
protected abstract function deleteInHash($key, $hkey, $hvalue);
/**
* @todo document me
*
* @param string $keyPrefix
* @param string $hkey
* @param string $language
*/
protected abstract function lookupInHash($keyPrefix, $hkey, $language = null);
/**
* Normalize value to avoid duplicate or false negatives
*
* @param string $value
*
* @return string
*/
private function normalize($value) {
if (null !== $value) {
return strtolower(trim($value));
}
}
/**
* {@inheritdoc}
*/
public function saveAlias($source, $alias, $language = null) {
$alias = $this
->normalize($alias);
$source = $this
->normalize($source);
if (null === $language) {
$language = LANGUAGE_NONE;
}
if (!empty($source)) {
$this
->saveInHash($this
->getKey(array(
self::KEY_ALIAS,
$language,
)), $source, $alias);
}
if (!empty($alias)) {
$this
->saveInHash($this
->getKey(array(
self::KEY_SOURCE,
$language,
)), $alias, $source);
}
}
/**
* {@inheritdoc}
*/
public function deleteAlias($source, $alias, $language = null) {
$alias = $this
->normalize($alias);
$source = $this
->normalize($source);
if (null === $language) {
$language = LANGUAGE_NONE;
}
$this
->deleteInHash($this
->getKey(array(
self::KEY_ALIAS,
$language,
)), $source, $alias);
$this
->deleteInHash($this
->getKey(array(
self::KEY_SOURCE,
$language,
)), $alias, $source);
}
/**
* {@inheritdoc}
*/
public function lookupAlias($source, $language = null) {
$source = $this
->normalize($source);
return $this
->lookupInHash(self::KEY_ALIAS, $source, $language);
}
/**
* {@inheritdoc}
*/
public function lookupSource($alias, $language = null) {
$alias = $this
->normalize($alias);
return $this
->lookupInHash(self::KEY_SOURCE, $alias, $language);
}
}