Source of file Cacheable.php
Size: 1,165 Bytes - Last Modified: 2021-12-24T05:18:55+00:00
/var/www/docs.ssmods.com/process/src/src/Traits/Cacheable.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | <?php namespace IQnection\BigCommerceApp\Traits; use SilverStripe\Core\Config\Configurable; use SilverStripe\Core\Injector\Injectable; use Psr\SimpleCache\CacheInterface; use SilverStripe\Core\Injector\Injector; trait Cacheable { use Configurable, Injectable; private static $cache_namespace = 'bcCache'; private static $cache_lifetime = 3600; public static function generateCacheKey($arg1) { $args = func_get_args(); return md5(json_encode($args)); } public static function cacheInterface() { return Injector::inst()->get(CacheInterface::class . '.' . self::Config()->get('cache_namespace')); } public static function toCache($name, $data, $lifetime = null) { if ( (is_null($lifetime)) || ($lifetime === false) ) { $lifetime = self::Config()->get('cache_lifetime'); } return self::cacheInterface()->set($name, $data, $lifetime); } public static function fromCache($name) { return self::cacheInterface()->get($name); } public static function clearCache($name) { return self::cacheInterface()->delete($name); } public static function isCached($name) { return self::cacheInterface()->has($name); } } |