diff options
| author | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
|---|---|---|
| committer | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
| commit | 4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch) | |
| tree | 5c07151ae61276d334e88f6309c30d439a85c12e /lib/classes/StudipMemcachedCache.php | |
| parent | da0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff) | |
| parent | 97a188592c679890a25c37ab78463add76a52ff7 (diff) | |
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'lib/classes/StudipMemcachedCache.php')
| -rw-r--r-- | lib/classes/StudipMemcachedCache.php | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/lib/classes/StudipMemcachedCache.php b/lib/classes/StudipMemcachedCache.php deleted file mode 100644 index 0e44dd5..0000000 --- a/lib/classes/StudipMemcachedCache.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php - -/** - * Copyright (C) 2007 - Marcus Lunzenauer <mlunzena@uos.de> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - */ - - -/** - * Cache implementation using memcached. - * - * @package studip - * @subpackage cache - * - * @author mlunzena - * @copyright (c) Authors - * @since 5.0 - */ - -class StudipMemcachedCache implements StudipCache -{ - use StudipCacheKeyTrait; - - private $memcache; - - /** - * @return string A translateable display name for this cache class. - */ - public static function getDisplayName(): string - { - return _('Memcached'); - } - - public function __construct($servers) - { - if (!extension_loaded('memcached')) { - throw new Exception('Memcache extension missing.'); - } - - $prefix = Config::get()->STUDIP_INSTALLATION_ID; - $this->memcache = new Memcached('studip' . $prefix ? '-' . $prefix : ''); - - if (count($this->memcache->getServerList()) === 0) { - foreach ($servers as $server) { - $status = $this->memcache->addServer($server['hostname'], (int) $server['port']); - - if (!$status) { - throw new Exception("Could not add server: {$server['hostname']} @ port {$server['port']}"); - } - } - } - } - - /** - * Expire item from the cache. - * - * Example: - * - * # expires foo - * $cache->expire('foo'); - * - * @param string $arg a single key. - * @returns void - */ - public function expire($arg) - { - $key = $this->getCacheKey($arg); - $this->memcache->delete($key); - } - - /** - * Expire all items from the cache. - */ - public function flush() - { - $this->memcache->flush(); - } - - /** - * Retrieve item from the server. - * - * Example: - * - * # reads foo - * $foo = $cache->reads('foo'); - * - * @param string $arg a single key - * @returns mixed the previously stored data if an item with such a key - * exists on the server or FALSE on failure. - */ - public function read($arg) - { - $key = $this->getCacheKey($arg); - return $this->memcache->get($key); - } - - /** - * Store data at the server. - * - * @param string $arg the item's key. - * @param string $content the item's content. - * @param int $expire the item's expiry time in seconds. Defaults to 12h. - * - * @returns mixed returns TRUE on success or FALSE on failure. - * - */ - public function write($arg, $content, $expire = self::DEFAULT_EXPIRATION) - { - $key = $this->getCacheKey($arg); - return $this->memcache->set($key, $content, $expire); - } - - /** - * Return statistics. - * - * @StudipCache::getStats() - * - * @return array|array[] - */ - public function getStats(): array - { - $stats = $this->memcache->getStats(); - return $stats; - } - - /** - * Return the Vue component name and props that handle configuration. - * - * @see StudipCache::getConfig() - * - * @return array - */ - public static function getConfig(): array - { - $currentCache = Config::get()->SYSTEMCACHE; - - // Set default config for this cache - $currentConfig = [ - 'servers' => [] - ]; - - // If this cache is set as system cache, use config from global settings. - if ($currentCache['type'] == __CLASS__) { - $currentConfig = $currentCache['config']; - } - - return [ - 'component' => 'MemcachedCacheConfig', - 'props' => $currentConfig - ]; - } - -} |
