[+] 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:
rMalie
2011-11-29 09:55:21 +00:00
parent 9ca2fe4ca5
commit 2cba5f3e1a
3 changed files with 35 additions and 14 deletions
+1 -7
View File
@@ -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
View File
@@ -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);
}
/**
+25
View File
@@ -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]);
}
}