Download wp-includes/SimplePie/Cache/Redis.php from AZILS/Word: direct link, hf CLI and curl.
- Browser
- Download file 4.08 kB
-
https://huggingface.co/spaces/AZILS/Word/resolve/main/wp-includes/SimplePie/Cache/Redis.php
- Command line
-
hf download hf://spaces/AZILS/Word/wp-includes/SimplePie/Cache/Redis.php
-
curl -L -o Redis.php https://huggingface.co/spaces/AZILS/Word/resolve/main/wp-includes/SimplePie/Cache/Redis.php
4.08 kB
| /** | |
| * SimplePie Redis Cache Extension | |
| * | |
| * @package SimplePie | |
| * @author Jan Kozak <galvani78@gmail.com> | |
| * @link http://galvani.cz/ | |
| * @license http://www.opensource.org/licenses/bsd-license.php BSD License | |
| * @version 0.2.9 | |
| */ | |
| /** | |
| * Caches data to redis | |
| * | |
| * Registered for URLs with the "redis" protocol | |
| * | |
| * For example, `redis://localhost:6379/?timeout=3600&prefix=sp_&dbIndex=0` will | |
| * connect to redis on `localhost` on port 6379. All tables will be | |
| * prefixed with `simple_primary-` and data will expire after 3600 seconds | |
| * | |
| * @package SimplePie | |
| * @subpackage Caching | |
| * @uses Redis | |
| */ | |
| class SimplePie_Cache_Redis implements SimplePie_Cache_Base { | |
| /** | |
| * Redis instance | |
| * | |
| * @var \Redis | |
| */ | |
| protected $cache; | |
| /** | |
| * Options | |
| * | |
| * @var array | |
| */ | |
| protected $options; | |
| /** | |
| * Cache name | |
| * | |
| * @var string | |
| */ | |
| protected $name; | |
| /** | |
| * Cache Data | |
| * | |
| * @var type | |
| */ | |
| protected $data; | |
| /** | |
| * Create a new cache object | |
| * | |
| * @param string $location Location string (from SimplePie::$cache_location) | |
| * @param string $name Unique ID for the cache | |
| * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data | |
| */ | |
| public function __construct($location, $name, $options = null) { | |
| //$this->cache = \flow\simple\cache\Redis::getRedisClientInstance(); | |
| $parsed = SimplePie_Cache::parse_URL($location); | |
| $redis = new Redis(); | |
| $redis->connect($parsed['host'], $parsed['port']); | |
| if (isset($parsed['pass'])) { | |
| $redis->auth($parsed['pass']); | |
| } | |
| if (isset($parsed['path'])) { | |
| $redis->select((int)substr($parsed['path'], 1)); | |
| } | |
| $this->cache = $redis; | |
| if (!is_null($options) && is_array($options)) { | |
| $this->options = $options; | |
| } else { | |
| $this->options = array ( | |
| 'prefix' => 'rss:simple_primary:', | |
| 'expire' => 0, | |
| ); | |
| } | |
| $this->name = $this->options['prefix'] . $name; | |
| } | |
| /** | |
| * @param \Redis $cache | |
| */ | |
| public function setRedisClient(\Redis $cache) { | |
| $this->cache = $cache; | |
| } | |
| /** | |
| * Save data to the cache | |
| * | |
| * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property | |
| * @return bool Successfulness | |
| */ | |
| public function save($data) { | |
| if ($data instanceof SimplePie) { | |
| $data = $data->data; | |
| } | |
| $response = $this->cache->set($this->name, serialize($data)); | |
| if ($this->options['expire']) { | |
| $this->cache->expire($this->name, $this->options['expire']); | |
| } | |
| return $response; | |
| } | |
| /** | |
| * Retrieve the data saved to the cache | |
| * | |
| * @return array Data for SimplePie::$data | |
| */ | |
| public function load() { | |
| $data = $this->cache->get($this->name); | |
| if ($data !== false) { | |
| return unserialize($data); | |
| } | |
| return false; | |
| } | |
| /** | |
| * Retrieve the last modified time for the cache | |
| * | |
| * @return int Timestamp | |
| */ | |
| public function mtime() { | |
| $data = $this->cache->get($this->name); | |
| if ($data !== false) { | |
| return time(); | |
| } | |
| return false; | |
| } | |
| /** | |
| * Set the last modified time to the current time | |
| * | |
| * @return bool Success status | |
| */ | |
| public function touch() { | |
| $data = $this->cache->get($this->name); | |
| if ($data !== false) { | |
| $return = $this->cache->set($this->name, $data); | |
| if ($this->options['expire']) { | |
| return $this->cache->expire($this->name, $this->options['expire']); | |
| } | |
| return $return; | |
| } | |
| return false; | |
| } | |
| /** | |
| * Remove the cache | |
| * | |
| * @return bool Success status | |
| */ | |
| public function unlink() { | |
| return $this->cache->set($this->name, null); | |
| } | |
| } | |