wp/wp-includes/class-wp-feed-cache-transient.php
changeset 7 cf61fcea0001
child 9 177826044cd9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-includes/class-wp-feed-cache-transient.php	Mon Oct 14 17:39:30 2019 +0200
@@ -0,0 +1,132 @@
+<?php
+/**
+ * Feed API: WP_Feed_Cache_Transient class
+ *
+ * @package WordPress
+ * @subpackage Feed
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to implement feed cache transients.
+ *
+ * @since 2.8.0
+ */
+class WP_Feed_Cache_Transient {
+
+	/**
+	 * Holds the transient name.
+	 *
+	 * @since 2.8.0
+	 * @var string
+	 */
+	public $name;
+
+	/**
+	 * Holds the transient mod name.
+	 *
+	 * @since 2.8.0
+	 * @var string
+	 */
+	public $mod_name;
+
+	/**
+	 * Holds the cache duration in seconds.
+	 *
+	 * Defaults to 43200 seconds (12 hours).
+	 *
+	 * @since 2.8.0
+	 * @var int
+	 */
+	public $lifetime = 43200;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 2.8.0
+	 * @since 3.2.0 Updated to use a PHP5 constructor.
+	 *
+	 * @param string $location  URL location (scheme is used to determine handler).
+	 * @param string $filename  Unique identifier for cache object.
+	 * @param string $extension 'spi' or 'spc'.
+	 */
+	public function __construct($location, $filename, $extension) {
+		$this->name = 'feed_' . $filename;
+		$this->mod_name = 'feed_mod_' . $filename;
+
+		$lifetime = $this->lifetime;
+		/**
+		 * Filters the transient lifetime of the feed cache.
+		 *
+		 * @since 2.8.0
+		 *
+		 * @param int    $lifetime Cache duration in seconds. Default is 43200 seconds (12 hours).
+		 * @param string $filename Unique identifier for the cache object.
+		 */
+		$this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $filename);
+	}
+
+	/**
+	 * Sets the transient.
+	 *
+	 * @since 2.8.0
+	 *
+	 * @param SimplePie $data Data to save.
+	 * @return true Always true.
+	 */
+	public function save($data) {
+		if ( $data instanceof SimplePie ) {
+			$data = $data->data;
+		}
+
+		set_transient($this->name, $data, $this->lifetime);
+		set_transient($this->mod_name, time(), $this->lifetime);
+		return true;
+	}
+
+	/**
+	 * Gets the transient.
+	 *
+	 * @since 2.8.0
+	 *
+	 * @return mixed Transient value.
+	 */
+	public function load() {
+		return get_transient($this->name);
+	}
+
+	/**
+	 * Gets mod transient.
+	 *
+	 * @since 2.8.0
+	 *
+	 * @return mixed Transient value.
+	 */
+	public function mtime() {
+		return get_transient($this->mod_name);
+	}
+
+	/**
+	 * Sets mod transient.
+	 *
+	 * @since 2.8.0
+	 *
+	 * @return bool False if value was not set and true if value was set.
+	 */
+	public function touch() {
+		return set_transient($this->mod_name, time(), $this->lifetime);
+	}
+
+	/**
+	 * Deletes transients.
+	 *
+	 * @since 2.8.0
+	 *
+	 * @return true Always true.
+	 */
+	public function unlink() {
+		delete_transient($this->name);
+		delete_transient($this->mod_name);
+		return true;
+	}
+}