mirror of
https://github.com/nextcloud/server.git
synced 2025-01-31 06:43:12 +00:00
dae7c159f7
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
85 lines
1.5 KiB
PHP
85 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
|
|
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
namespace OC\Memcache;
|
|
|
|
/**
|
|
* @template-implements \ArrayAccess<string,mixed>
|
|
*/
|
|
abstract class Cache implements \ArrayAccess, \OCP\ICache {
|
|
/**
|
|
* @var string $prefix
|
|
*/
|
|
protected $prefix;
|
|
|
|
/**
|
|
* @param string $prefix
|
|
*/
|
|
public function __construct($prefix = '') {
|
|
$this->prefix = $prefix;
|
|
}
|
|
|
|
/**
|
|
* @return string Prefix used for caching purposes
|
|
*/
|
|
public function getPrefix() {
|
|
return $this->prefix;
|
|
}
|
|
|
|
/**
|
|
* @param string $key
|
|
* @return mixed
|
|
*/
|
|
abstract public function get($key);
|
|
|
|
/**
|
|
* @param string $key
|
|
* @param mixed $value
|
|
* @param int $ttl
|
|
* @return mixed
|
|
*/
|
|
abstract public function set($key, $value, $ttl = 0);
|
|
|
|
/**
|
|
* @param string $key
|
|
* @return mixed
|
|
*/
|
|
abstract public function hasKey($key);
|
|
|
|
/**
|
|
* @param string $key
|
|
* @return mixed
|
|
*/
|
|
abstract public function remove($key);
|
|
|
|
/**
|
|
* @param string $prefix
|
|
* @return mixed
|
|
*/
|
|
abstract public function clear($prefix = '');
|
|
|
|
//implement the ArrayAccess interface
|
|
|
|
public function offsetExists($offset): bool {
|
|
return $this->hasKey($offset);
|
|
}
|
|
|
|
public function offsetSet($offset, $value): void {
|
|
$this->set($offset, $value);
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
#[\ReturnTypeWillChange]
|
|
public function offsetGet($offset) {
|
|
return $this->get($offset);
|
|
}
|
|
|
|
public function offsetUnset($offset): void {
|
|
$this->remove($offset);
|
|
}
|
|
}
|