Seditio Source
Root |
./othercms/wordpress-6.0/wp-includes/class-wp-feed-cache-transient.php
<?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;
    }
}