wp_back/wp-content/plugins/shortpixel-image-optimiser/class/Controller/CacheController.php
2024-05-20 15:37:46 +03:00

75 lines
1.7 KiB
PHP

<?php
namespace ShortPixel\Controller;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
use ShortPixel\ShortPixelLogger\ShortPixelLogger as Log;
use ShortPixel\Model\CacheModel as CacheModel;
// Future replacement for everything that needs temporary storage
// Storage agnostic -> called function should not need to know what is stored where, this is job of controller.
// Works with cache-model, which handles the data representation and storage.
//
class CacheController extends \ShortPixel\Controller
{
protected static $cached_items = array();
public function __construct()
{
}
public function storeItem($name, $value, $expires = HOUR_IN_SECONDS)
{
$cache = $this->getItem($name);
$cache->setValue($value);
$cache->setExpires($expires);
$cache->save();
$cache = apply_filters('shortpixel/cache/save', $cache, $name);
self::$cached_items[$name] = $cache;
return $cache;
}
/** Store a cacheModel Object.
* This can be used after requesting a cache item for instance.
* @param CacheModel $cache The Cache Model Item.
*/
public function storeItemObject(CacheModel $cache)
{
self::$cached_items[$cache->getName()] = $cache;
$cache->save();
}
public function getItem($name)
{
if (isset(self::$cached_items[$name]))
return self::$cached_items[$name];
$cache = new CacheModel($name);
$cache = apply_filters('shortpixel/cache/get', $cache, $name);
self::$cached_items[$name] = $cache;
return $cache;
}
public function deleteItem($name)
{
$cache = $this->getItem($name);
if ($cache->exists())
{
$cache->delete();
}
}
public function deleteItemObject(CacheModel $cache)
{
$cache->delete();
}
}