%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/handlers/delivery/spsr/ |
| Current File : /home/bitrix/www/bitrix/modules/sale/handlers/delivery/spsr/cache.php |
<?
namespace Sale\Handlers\Delivery\Spsr;
use \Bitrix\Main\Application;
/**
* Working with cache for faster work.
* Class Cache
* @package Sale\Handlers\Delivery\Spsr
*/
class Cache
{
protected static function getCache($ttl, $cacheId)
{
$result = false;
$cacheManager = Application::getInstance()->getManagedCache();
if($cacheManager->read($ttl, $cacheId))
$result = $cacheManager->get($cacheId);
return $result;
}
protected static function setCache($cacheId, $value)
{
$cacheManager = Application::getInstance()->getManagedCache();
$cacheManager->set($cacheId, $value);
}
protected static function cleanCache($cacheId)
{
$cacheManager = Application::getInstance()->getManagedCache();
$cacheManager->clean($cacheId);
}
public static function cleanAll()
{
self::cleanSid();
self::cleanServiceTypes();
self::cleanCalcRes();
}
public static function getSidResult($login, $pass)
{
$cache = self::getCache(86400, 'SALE_DELIVERY_HANDL_SPSR_SESSID'); // day
$idx = md5($login.$pass);
return isset($cache[$idx]) ? $cache[$idx] : false;
}
public static function setSid($sid, $login, $pass)
{
$cache = self::getCache(86400, 'SALE_DELIVERY_HANDL_SPSR_SESSID'); // day
$cache[md5($login.$pass)] = $sid;
self::setCache('SALE_DELIVERY_HANDL_SPSR_SESSID', $cache);
}
public static function cleanSid()
{
self::cleanCache('SALE_DELIVERY_HANDL_SPSR_SESSID');
}
public static function getServiceTypes($login, $pass)
{
$cache = self::getCache(2592000, 'SALE_DELIVERY_HANDL_SPSR_ST');
$idx = md5($login.$pass);
return isset($cache[$idx]) ? $cache[$idx] : false;
}
public static function setServiceTypes(array $serviceTypes, $login, $pass)
{
$cache = self::getCache(2592000, 'SALE_DELIVERY_HANDL_SPSR_ST');
$cache[md5($login.$pass)] = $serviceTypes;
self::setCache('SALE_DELIVERY_HANDL_SPSR_ST', $cache);
}
public static function cleanServiceTypes()
{
self::cleanCache('SALE_DELIVERY_HANDL_SPSR_ST');
}
public static function getCalcRes($request)
{
// week
return self::getCache(604800, 'SALE_DELIVERY_HANDL_SPSR_CR_'.md5($request));
}
public static function setCalcRes(array $calcRes, $request)
{
self::setCache('SALE_DELIVERY_HANDL_SPSR_CR_'.md5($request), $calcRes);
}
public static function cleanCalcRes()
{
self::cleanCache('SALE_DELIVERY_HANDL_SPSR_ST');
}
}