diff -r 48c4eec2b7e6 -r 8c2e4d02f4ef wp/wp-includes/SimplePie/src/Cache/BaseDataCache.php
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-includes/SimplePie/src/Cache/BaseDataCache.php Fri Sep 05 18:52:52 2025 +0200
@@ -0,0 +1,158 @@
+cache = $cache;
+ }
+
+ /**
+ * Fetches a value from the cache.
+ *
+ * Equivalent to \Psr\SimpleCache\CacheInterface::get()
+ *
+ * public function get(string $key, mixed $default = null): mixed;
+ *
+ *
+ * @param string $key The unique key of this item in the cache.
+ * @param mixed $default Default value to return if the key does not exist.
+ *
+ * @return array|mixed The value of the item from the cache, or $default in case of cache miss.
+ *
+ * @throws InvalidArgumentException
+ * MUST be thrown if the $key string is not a legal value.
+ */
+ public function get_data(string $key, $default = null)
+ {
+ $data = $this->cache->load();
+
+ if (!is_array($data)) {
+ return $default;
+ }
+
+ // ignore data if internal cache expiration time is not set
+ if (!array_key_exists('__cache_expiration_time', $data)) {
+ return $default;
+ }
+
+ // ignore data if internal cache expiration time is expired
+ if ($data['__cache_expiration_time'] < time()) {
+ return $default;
+ }
+
+ // remove internal cache expiration time
+ unset($data['__cache_expiration_time']);
+
+ return $data;
+ }
+
+ /**
+ * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.
+ *
+ * Equivalent to \Psr\SimpleCache\CacheInterface::set()
+ *
+ * public function set(string $key, mixed $value, null|int|\DateInterval $ttl = null): bool;
+ *
+ *
+ * @param string $key The key of the item to store.
+ * @param array $value The value of the item to store, must be serializable.
+ * @param null|int $ttl Optional. The TTL value of this item. If no value is sent and
+ * the driver supports TTL then the library may set a default value
+ * for it or let the driver take care of that.
+ *
+ * @return bool True on success and false on failure.
+ *
+ * @throws InvalidArgumentException
+ * MUST be thrown if the $key string is not a legal value.
+ */
+ public function set_data(string $key, array $value, ?int $ttl = null): bool
+ {
+ if ($ttl === null) {
+ $ttl = 3600;
+ }
+
+ // place internal cache expiration time
+ $value['__cache_expiration_time'] = time() + $ttl;
+
+ return $this->cache->save($value);
+ }
+
+ /**
+ * Delete an item from the cache by its unique key.
+ *
+ * Equivalent to \Psr\SimpleCache\CacheInterface::delete()
+ *
+ * public function delete(string $key): bool;
+ *
+ *
+ * @param string $key The unique cache key of the item to delete.
+ *
+ * @return bool True if the item was successfully removed. False if there was an error.
+ *
+ * @throws InvalidArgumentException
+ * MUST be thrown if the $key string is not a legal value.
+ */
+ public function delete_data(string $key): bool
+ {
+ return $this->cache->unlink();
+ }
+}