Server : Apache System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33.7 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system Directory : /nas/content/live/attorneyexperi/wp-content/plugins/cookie-law-info/lite/includes/ |
<?php /** * Cache class. * * @package CookieYes\Lite\Includes */ namespace CookieYes\Lite\Includes; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Cache. */ class Cache { /** * Get prefix for use with wp_cache_set. Allows all cache in a group to be invalidated at once. * * @param string $group Group of cache to get. * @return string */ public static function get_cache_prefix( $group ) { $prefix = wp_cache_get( 'cky_' . $group . '_cache_prefix', $group ); if ( false === $prefix ) { $prefix = microtime(); wp_cache_set( 'cky_' . $group . '_cache_prefix', $prefix, $group ); } return 'cky_cache_' . $prefix . '_'; } /** * Invalidate cache group. * * @param string $group Group of cache to clear. * @since 3.9.0 */ public static function invalidate_cache_group( $group ) { wp_cache_set( 'cky_' . $group . '_cache_prefix', microtime(), $group ); } /** * Delete cache group * * @param string $group Cache group name. * @return void */ public static function delete_cache( $group ) { wp_cache_set( 'cky_' . $group . '_cache_prefix', microtime(), $group ); } /** * Get cache from either transient or object cache. * * @param string $key Cache key. * @param string $group Cache group. * @return bool|array */ public static function get( $key, $group ) { $items = self::get_cache( $key, $group ); if ( false === $items ) { // Object cache is empty so fetch from transients. $items = self::get_transient( $key, $group ); self::set_cache( $key, $group, $items ); } return $items; } /** * Store data to both object cache and transient. * * @param string $key Cache key. * @param string $group Cache group. * @param array $data Data to be store. * @param boolean $transient If true store data in transients. */ public static function set( $key, $group, $data = array(), $transient = true ) { self::set_cache( $key, $group, $data ); if ( $transient ) { self::set_transient( $key, $group, $data ); } } /** * Delete the cache * * @param string $group Cache group. * @return void */ public static function delete( $group ) { self::delete_cache( $group ); self::delete_transient( $group ); } /** * Load items from the object cache. * * @param string $key Cache key. * @param string $group Cache group. * @return bool|array */ public static function get_cache( $key, $group ) { $key = self::get_cache_prefix( $group ) . $key; $items = wp_cache_get( $key, $group ); if ( $items ) { return $items; } return false; } /** * Store data to the cache * * @param string $key Cache key. * @param string $group Cache group. * @param array|object $data Data to be stored. * @return void */ public static function set_cache( $key, $group, $data ) { $key = self::get_cache_prefix( $group ) . $key; wp_cache_set( $key, $data, $group ); } /** Transient Functions */ /** * Get unique transient key based on time. * * @param string $group Transient. * @return string */ public static function get_transient_prefix( $group ) { $prefix = get_transient( 'cky_' . $group . '_transient_prefix' ); if ( false === $prefix ) { $prefix = microtime(); set_transient( 'cky_' . $group . '_transient_prefix', $prefix ); } return 'cky_transient_' . $prefix . '_'; } /** * Load items from the transient * * @param string $key Cache key. * @param string $group Cache group. * @return bool|array */ public static function get_transient( $key, $group ) { $key = self::get_transient_prefix( $group ) . $key; $items = get_transient( $key ); if ( $items ) { return $items; } return false; } /** * Store data to the transient * * @param string $key Cache key. * @param string $group Cache group. * @param array|object $data Data to be stored. * @return void */ public static function set_transient( $key, $group, $data ) { $key = self::get_transient_prefix( $group ) . $key; set_transient( $key, $data ); } /** * Get all transients with prefix "cky" default * * @param string $prefix Transient prefix. * @return array */ public static function get_transient_keys_with_prefix( $prefix ) { global $wpdb; $prefix = $wpdb->esc_like( '_transient_' . $prefix ) . '%'; $keys = $wpdb->get_results( $wpdb->prepare( "SELECT option_name FROM $wpdb->options WHERE option_name LIKE %s", $prefix ), ARRAY_A ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery if ( is_wp_error( $keys ) ) { return array(); } return array_map( function( $key ) { // Remove '_transient_' from the option name. return ltrim( $key['option_name'], '_transient_' ); }, $keys ); } /** * Delete all transients with certain prefix. * * @param string $group Transient group. * @return void */ public static function delete_transient( $group ) { $prefix = self::get_transient_prefix( $group ); $transients = self::get_transient_keys_with_prefix( $prefix ); foreach ( $transients as $key ) { delete_transient( $key ); } } }