. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 162.0.212.4 / Your IP :
216.73.216.14 [
Web Server : LiteSpeed System : Linux premium146.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : alshnoli ( 2431) PHP Version : 8.3.28 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/alshnoli/www/wp-content/plugins/google-analytics-for-wordpress/includes/cache/ |
Upload File : |
<?php
/**
* Cache Helper Functions
*
* Global helper functions for the MonsterInsights cache system.
* Provides a simple, clean API for caching throughout the plugin.
*
* @since 9.11.0
* @package MonsterInsights
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Load cache cleanup class
require_once MONSTERINSIGHTS_PLUGIN_DIR . 'includes/cache/class-cache-cleanup.php';
/**
* Get the cache wrapper instance.
*
* Returns a singleton instance of the cache wrapper.
*
* @since 9.11.0
* @return MonsterInsights_Cache_Wrapper Cache wrapper instance.
*/
function monsterinsights_get_cache() {
static $instance = null;
if ( $instance === null ) {
// Load cache wrapper if not already loaded
if ( ! class_exists( 'MonsterInsights_Cache_Wrapper' ) ) {
require_once MONSTERINSIGHTS_PLUGIN_DIR . 'includes/cache/class-cache-wrapper.php';
}
$instance = new MonsterInsights_Cache_Wrapper();
}
return $instance;
}
/**
* Get cached data.
*
* Retrieves data from cache. Tries object cache (Redis/Memcached) first,
* then falls back to custom cache table.
*
* @since 9.11.0
* @param string $key Cache key.
* @param string $group Cache group (default 'reports').
* @return mixed|false Cached data or false if not found.
*/
function monsterinsights_cache_get( $key, $group = 'reports' ) {
return monsterinsights_get_cache()->get( $key, $group );
}
/**
* Set cached data.
*
* Stores data in cache. Uses object cache (Redis/Memcached) if available,
* and always stores in custom cache table for persistence.
*
* @since 9.11.0
* @param string $key Cache key.
* @param mixed $value Value to cache.
* @param string $group Cache group (default 'reports').
* @param int $expiration Expiration in seconds (default 3600).
* @return bool True on success, false on failure.
*/
function monsterinsights_cache_set( $key, $value, $group = 'reports', $expiration = 3600 ) {
return monsterinsights_get_cache()->set( $key, $value, $group, $expiration );
}
/**
* Delete cached data.
*
* Removes data from both object cache and cache table.
*
* @since 9.11.0
* @param string $key Cache key.
* @param string $group Cache group (default 'reports').
* @return bool True on success, false on failure.
*/
function monsterinsights_cache_delete( $key, $group = 'reports' ) {
return monsterinsights_get_cache()->delete( $key, $group );
}
/**
* Flush all cached data in a group.
*
* @since 9.11.0
* @param string $group Cache group (default 'reports').
* @return bool True on success, false on failure.
*/
function monsterinsights_cache_flush_group( $group = 'reports' ) {
return monsterinsights_get_cache()->flush_group( $group );
}
/**
* Flush all cached data.
*
* @since 9.11.0
* @return bool True on success, false on failure.
*/
function monsterinsights_cache_flush_all() {
return monsterinsights_get_cache()->flush_all();
}
/**
* Check if a cache key exists.
*
* @since 9.11.0
* @param string $key Cache key.
* @param string $group Cache group (default 'reports').
* @return bool True if exists, false otherwise.
*/
function monsterinsights_cache_exists( $key, $group = 'reports' ) {
return monsterinsights_get_cache()->exists( $key, $group );
}
/**
* Get cache statistics.
*
* Returns information about cache usage, including:
* - Total entries
* - Valid vs expired entries
* - Total size
* - Breakdown by group
* - Whether object cache is available
*
* @since 9.11.0
* @return array Cache statistics.
*/
function monsterinsights_cache_get_stats() {
return monsterinsights_get_cache()->get_stats();
}
/**
* Clean up expired cache entries.
*
* Removes expired entries from the cache table.
* Object cache handles its own expiration automatically.
*
* @since 9.11.0
* @return int Number of entries deleted.
*/
function monsterinsights_cache_cleanup() {
return monsterinsights_get_cache()->cleanup_expired();
}
/**
* Get the remaining time to live for a cache entry.
*
* @since 9.11.0
* @param string $key Cache key.
* @param string $group Cache group (default 'reports').
* @return int|false Time to live in seconds, or false if not found/expired.
*/
function monsterinsights_cache_get_ttl( $key, $group = 'reports' ) {
return monsterinsights_get_cache()->get_ttl( $key, $group );
}
/**
* Check if object cache (Redis/Memcached) is available.
*
* @since 9.11.0
* @return bool True if object cache available, false otherwise.
*/
function monsterinsights_has_object_cache() {
return monsterinsights_get_cache()->has_object_cache();
}
/**
* Schedule daily cache cleanup.
*
* Schedules automatic cleanup of expired cache entries.
* Call this on plugin activation.
*
* @since 9.11.0
* @return bool True if scheduled, false if already scheduled.
*/
function monsterinsights_schedule_cache_cleanup() {
return MonsterInsights_Cache_Cleanup::schedule_cleanup();
}
/**
* Unschedule cache cleanup.
*
* Removes the scheduled cleanup event.
* Call this on plugin deactivation.
*
* @since 9.11.0
* @return bool True if unscheduled, false otherwise.
*/
function monsterinsights_unschedule_cache_cleanup() {
return MonsterInsights_Cache_Cleanup::unschedule_cleanup();
}
/**
* Manually trigger cache cleanup.
*
* Deletes all expired cache entries immediately.
* Useful for testing or manual cleanup.
*
* @since 9.11.0
* @return int|false Number of entries deleted, or false on error.
*/
function monsterinsights_cleanup_expired_cache() {
return MonsterInsights_Cache_Cleanup::cleanup_expired_entries();
}
/**
* Get cache cleanup statistics.
*
* Returns information about cache health and expired entries.
*
* @since 9.11.0
* @return array Cache statistics including total, valid, and expired entry counts.
*/
function monsterinsights_get_cache_cleanup_stats() {
return MonsterInsights_Cache_Cleanup::get_cleanup_stats();
}