[+] Classes: add local cache system
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@10729 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
+1
-7
@@ -134,13 +134,7 @@ class AddressCore extends ObjectModel
|
||||
|
||||
/* Get and cache address country name */
|
||||
if ($this->id)
|
||||
{
|
||||
$result = Db::getInstance()->getRow('
|
||||
SELECT `name` FROM `'._DB_PREFIX_.'country_lang`
|
||||
WHERE `id_country` = '.(int)$this->id_country.'
|
||||
AND `id_lang` = '.($id_lang ? (int)$id_lang : Configuration::get('PS_LANG_DEFAULT')));
|
||||
$this->country = $result['name'];
|
||||
}
|
||||
$this->country = Country::getNameById($id_lang ? $id_lang : Configuration::get('PS_LANG_DEFAULT'), $this->id_country);
|
||||
}
|
||||
|
||||
public function add($autodate = true, $null_values = false)
|
||||
|
||||
+9
-7
@@ -214,14 +214,16 @@ class CountryCore extends ObjectModel
|
||||
*/
|
||||
public static function getNameById($id_lang, $id_country)
|
||||
{
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
||||
SELECT `name`
|
||||
FROM `'._DB_PREFIX_.'country_lang`
|
||||
WHERE `id_lang` = '.(int)$id_lang.'
|
||||
AND `id_country` = '.(int)$id_country
|
||||
);
|
||||
$key = $id_country.'_'.$id_lang;
|
||||
if (!Cache::isStored($key))
|
||||
Cache::store($key, Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
||||
SELECT `name`
|
||||
FROM `'._DB_PREFIX_.'country_lang`
|
||||
WHERE `id_lang` = '.(int)$id_lang.'
|
||||
AND `id_country` = '.(int)$id_country
|
||||
));
|
||||
|
||||
return $result['name'];
|
||||
return Cache::retrieve($key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Vendored
+25
@@ -70,6 +70,11 @@ abstract class CacheCore
|
||||
'page_viewed',
|
||||
);
|
||||
|
||||
/**
|
||||
* @var array Store local cache
|
||||
*/
|
||||
protected static $local = array();
|
||||
|
||||
/**
|
||||
* Cache a data
|
||||
*
|
||||
@@ -291,4 +296,24 @@ abstract class CacheCore
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function store($key, $value)
|
||||
{
|
||||
Cache::$local[$key] = $value;
|
||||
}
|
||||
|
||||
public static function retrieve($key)
|
||||
{
|
||||
return isset(Cache::$local[$key]) ? Cache::$local[$key] : null;
|
||||
}
|
||||
|
||||
public static function isStored($key)
|
||||
{
|
||||
return isset(Cache::$local[$key]);
|
||||
}
|
||||
|
||||
public static function clean($key)
|
||||
{
|
||||
unset(Cache::$local[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user