whoami7 - Manager
:
/
home
/
dataiclx
/
vielorbe.com
/
wp-content
/
plugins
/
insta-gallery
/
lib
/
services
/
Upload File:
files >> //home/dataiclx/vielorbe.com/wp-content/plugins/insta-gallery/lib/services/class-cache.php
<?php namespace QuadLayers\IGG\Services; /** * QuadLayers Cache * Version: 1.0.1 * Date: 24/11/2022 */ /** * Cache Class */ class Cache { /** * Disable cache test * * @var boolean */ private static $disable_cache_test = false; /** * Force expiration test * * @var boolean */ private static $force_expiration_test = false; /** * Cache class prefix * * @var string */ private static $prefix = 'qligg_cache_'; /** * Cache mininum expiration lapse * * @var integer */ public static $min_expiration_lapse_in_hours = 6; /** * Cache autoexpires setting * * @var boolean */ private static $autoexpires; /** * User set cache expiration lapse * * @var int */ public static $expiration_lapse_in_hours; /** * Current time in timestamp type * * @var int */ public static $current_time_timestamp; /** * Cache dynamic prefix * * @var string */ public $dynamic_prefix = ''; /** * Class constructor * * @param integer $expiration_lapse_in_hours User set expiration lapse in hours. * @param boolean $autoexpires Property to define if cache autoexpire. * @param string $add_prefix Prefix to use as dynamic prefix. */ public function __construct( int $expiration_lapse_in_hours, $autoexpires, $add_prefix ) { $this->dynamic_prefix = $add_prefix; self::$expiration_lapse_in_hours = max( self::$min_expiration_lapse_in_hours, absint( $expiration_lapse_in_hours ) ); self::$autoexpires = $autoexpires; self::$current_time_timestamp = current_time( 'timestamp' ); } /** * Function to get complete cache prefix * * @return string */ public function get_prefix() { return static::$prefix . $this->dynamic_prefix; } /** * Get the expiration date * * @param int $cache_timestamp Timestamp to use to calculate cache expiration. * @return int */ public function get_cache_expiration_timestamp( int $cache_timestamp ) { if ( self::$force_expiration_test ) { return 0; } return $cache_timestamp + self::$min_expiration_lapse_in_hours * HOUR_IN_SECONDS; } /** * Return true if a date is expired, false if not * * @param int $cache_timestamp Timestamp to use to check if cache is expired. * @return boolean */ public function is_cache_expired( int $cache_timestamp ) { // retorna true si se vencio, false si no se vencio /** * Conditional to hardcode function return true */ if ( ! self::$disable_cache_test ) { return self::$current_time_timestamp > $this->get_cache_expiration_timestamp( $cache_timestamp ); // Funcion } return true; } /** * Get the url key to access to database * * @param string $url Url to get database url key. * @return string */ public function get_db_url_key( string $url ) { return $this->get_prefix() . '_' . md5( $url ); } /** * Get option from database * * @param string $url Url to get cached data. * @return array */ public function get( $url ) { $cache_option_key = $this->get_db_url_key( $url ); $cache = ''; if ( static::$autoexpires ) { $cache = get_transient( $cache_option_key ); } else { $cache = get_option( $cache_option_key, false ); } if ( ! isset( $cache['timestamp'] ) || $this->is_cache_expired( $cache['timestamp'] ) ) { return array(); } return $cache; } /** * Update option in database * * @param string $url Url to use as key. * @param array $response Response data to be updated. * @return void */ public function update( $url, $response ) { $cache_option_key = $this->get_db_url_key( $url ); $cache = array( 'response' => $response, 'timestamp' => current_time( 'timestamp' ), ); if ( static::$autoexpires ) { set_transient( $cache_option_key, $cache, static::$expiration_lapse_in_hours * 3600 ); } else { update_option( $cache_option_key, $cache ); } } /** * Delete option from database * * @param string $url Url to use as key. * @return void */ public function delete_key( $url ) { $cache_option_key = $this->get_db_url_key( $url ); if ( static::$autoexpires ) { delete_transient( $cache_option_key ); } else { delete_option( $cache_option_key ); } } /** * Delete all data saved from database that are related to class prefix * * @return void */ public function delete() { global $wpdb; $search_prefix = '%' . $this->get_prefix() . '%'; $tks = $wpdb->get_results( $wpdb->prepare( "SELECT option_name FROM $wpdb->options WHERE option_name LIKE %s", $search_prefix ) ); if ( $tks ) { foreach ( $tks as $key => $name ) { if ( static::$autoexpires ) { delete_transient( str_replace( '_transient_', '', $name->option_name ) ); } else { delete_option( $name->option_name ); } } } } }
Copyright ©2021 || Defacer Indonesia