| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.3/wp-content/plugins/wp-statistics/src/Traits/ |
Upload File : |
<?php
namespace WP_Statistics\Traits;
/**
* Trait to handle caching logic using WordPress Object Cache.
*/
trait WpCacheTrait
{
/**
* Cache group name to avoid collisions.
*
* @var string
*/
protected $cacheGroup = 'wp_statistics';
/**
* Sets a value in the cache.
*
* @param string $key Cache key.
* @param mixed $value Value to cache.
* @param mixed $expire Expiration time in seconds.
*
* @return bool True on success, false on failure.
*/
public function setCache($key, $value, $expire = 0)
{
return wp_cache_set($key, $value, $this->cacheGroup, $expire);
}
/**
* Gets a value from the cache.
*
* @param string $key Cache key.
* @param mixed $default Default value if not found.
*
* @return mixed
*/
public function getCache($key, $default = null)
{
$value = wp_cache_get($key, $this->cacheGroup);
return ($value === false) ? $default : $value;
}
/**
* Checks if a cache key is set.
*
* @param string $key Cache key.
*
* @return bool
*/
public function isCacheSet($key)
{
return wp_cache_get($key, $this->cacheGroup) !== false;
}
/**
* Deletes a value from the cache.
*
* @param string $key Cache key.
*
* @return bool True on success, false on failure.
*/
public function deleteCache($key)
{
return wp_cache_delete($key, $this->cacheGroup);
}
/**
* Fetches data with caching.
*
* @param string $key Cache key.
* @param string $expire Expiration in seconds.
* @param callable $callback Function to fetch data if not cached.
*
* @return mixed
*/
public function getCachedData($key, callable $callback, $expire = 0)
{
$value = wp_cache_get($key, $this->cacheGroup);
if ($value === false) {
$value = $callback();
$this->setCache($key, $value, $expire);
}
return $value;
}
}