// Performance optimizations

This commit is contained in:
rGaillard
2012-05-29 08:32:13 +00:00
parent 916c09e068
commit cebd95901d
7 changed files with 48 additions and 16 deletions
+6 -3
View File
@@ -1799,8 +1799,8 @@ class CartCore extends ObjectModel
*/
public function getDeliveryOptionList(Country $default_country = null, $flush = false)
{
static $cache = false;
if ($cache !== false && !$flush)
static $cache = null;
if ($cache !== null && !$flush)
return $cache;
$delivery_option_list = array();
@@ -1828,7 +1828,10 @@ class CartCore extends ObjectModel
{
// No carriers available
if (count($package['carrier_list']) == 1 && current($package['carrier_list']) == 0)
return array();
{
$cache = array();
return $cache;
}
$carriers_price[$id_address][$id_package] = array();
+5 -1
View File
@@ -200,7 +200,11 @@ class CombinationCore extends ObjectModel
*/
public static function isFeatureActive()
{
return Configuration::get('PS_COMBINATION_FEATURE_ACTIVE');
static $feature_active = null;
if ($feature_active === null)
$feature_active = Configuration::get('PS_COMBINATION_FEATURE_ACTIVE');
return $feature_active;
}
/**
+7 -3
View File
@@ -35,6 +35,8 @@ class LinkCore
public $protocol_link;
public $protocol_content;
protected $ssl_enable;
/**
* Constructor (initialization only)
*/
@@ -49,6 +51,8 @@ class LinkCore
define('_PS_BASE_URL_', Tools::getShopDomain(true));
if (!defined('_PS_BASE_URL_SSL_'))
define('_PS_BASE_URL_SSL_', Tools::getShopDomainSsl(true));
$this->ssl_enable = Configuration::get('PS_SSL_ENABLED');
}
/**
@@ -209,7 +213,7 @@ class LinkCore
*/
public function getCMSLink($cms, $alias = null, $ssl = false, $id_lang = null)
{
$base = (($ssl && Configuration::get('PS_SSL_ENABLED')) ? _PS_BASE_URL_SSL_ : _PS_BASE_URL_);
$base = (($ssl && $this->ssl_enable) ? _PS_BASE_URL_SSL_ : _PS_BASE_URL_);
if (!$id_lang)
$id_lang = Context::getContext()->language->id;
@@ -301,7 +305,7 @@ class LinkCore
*/
public function getModuleLink($module, $controller = 'default', array $params = array(), $ssl = false, $id_lang = null)
{
$base = (($ssl && Configuration::get('PS_SSL_ENABLED')) ? _PS_BASE_URL_SSL_ : _PS_BASE_URL_);
$base = (($ssl && $this->ssl_enable) ? _PS_BASE_URL_SSL_ : _PS_BASE_URL_);
if (!$id_lang)
$id_lang = Context::getContext()->language->id;
@@ -401,7 +405,7 @@ class LinkCore
unset($request['controller']);
$uri_path = Dispatcher::getInstance()->createUrl($controller, $request);
$url = ($ssl && Configuration::get('PS_SSL_ENABLED')) ? Tools::getShopDomainSsl(true) : Tools::getShopDomain(true);
$url = ($ssl && $this->ssl_enable) ? Tools::getShopDomainSsl(true) : Tools::getShopDomain(true);
$url .= __PS_BASE_URI__.$this->getLangLink($id_lang).ltrim($uri_path, '/');
return $url;
+9 -5
View File
@@ -2370,6 +2370,11 @@ class ProductCore extends ObjectModel
$id_group, $quantity, $use_tax, $decimals, $only_reduc, $use_reduc, $with_ecotax, &$specific_price, $use_group_reduction,
$id_customer = 0, $use_customer_price = true, $id_cart = 0)
{
static $address = null;
if ($address === null)
$address = new Address();
if (!$use_customer_price)
$id_customer = 0;
@@ -2382,6 +2387,9 @@ class ProductCore extends ObjectModel
'-'.$quantity.'-'.$product_attribute_label.'-'.($use_tax?'1':'0').'-'.$decimals.'-'.($only_reduc?'1':'0').
'-'.($use_reduc?'1':'0').'-'.$with_ecotax.'-'.$id_customer;
if (isset(self::$_prices[$cache_id]))
return self::$_prices[$cache_id];
// reference parameter is filled before any returns
$specific_price = SpecificPrice::getSpecificPrice(
(int)$id_product,
@@ -2395,9 +2403,6 @@ class ProductCore extends ObjectModel
$id_cart
);
if (isset(self::$_prices[$cache_id]))
return self::$_prices[$cache_id];
// fetch price & attribute price
$cache_id_2 = $id_product.'-'.(int)$id_product_attribute;
if (!isset(self::$_pricesLevel2[$cache_id_2]))
@@ -2455,7 +2460,6 @@ class ProductCore extends ObjectModel
}
// Tax
$address = new Address();
$address->id_country = $id_country;
$address->id_state = $id_state;
$address->postcode = $zipcode;
@@ -3448,7 +3452,7 @@ class ProductCore extends ObjectModel
$usetax = Tax::excludeTaxeOption();
$cache_key = $row['id_product'].'-'.$row['id_product_attribute'].'-'.$id_lang.'-'.(int)$usetax;
if (array_key_exists($cache_key, self::$producPropertiesCache))
if (isset(self::$producPropertiesCache[$cache_key]))
return self::$producPropertiesCache[$cache_key];
// Datas
+5 -1
View File
@@ -395,7 +395,11 @@ class SpecificPriceCore extends ObjectModel
*/
public static function isFeatureActive()
{
return Configuration::get('PS_SPECIFIC_PRICE_FEATURE_ACTIVE');
static $feature_active = null;
if ($feature_active === null)
$feature_active = Configuration::get('PS_SPECIFIC_PRICE_FEATURE_ACTIVE');
return $feature_active;
}
public static function exists($id_product, $id_product_attribute, $id_shop, $id_group, $id_country, $id_currency, $id_customer, $from_quantity, $from, $to, $rule = false)
+11 -2
View File
@@ -502,6 +502,11 @@ class ToolsCore
*/
public static function convertPrice($price, $currency = null, $to_currency = true, Context $context = null)
{
static $default_currency = null;
if ($default_currency === null)
$default_currency = (int)Configuration::get('PS_CURRENCY_DEFAULT');
if (!$context)
$context = Context::getContext();
if ($currency === null)
@@ -512,7 +517,7 @@ class ToolsCore
$c_id = (is_array($currency) ? $currency['id_currency'] : $currency->id);
$c_rate = (is_array($currency) ? $currency['conversion_rate'] : $currency->conversion_rate);
if ($c_id != (int)Configuration::get('PS_CURRENCY_DEFAULT'))
if ($c_id != $default_currency)
{
if ($to_currency)
$price *= $c_rate;
@@ -1139,7 +1144,11 @@ class ToolsCore
*/
public static function ps_round($value, $precision = 0)
{
$method = (int)Configuration::get('PS_PRICE_ROUND_MODE');
static $method = null;
if ($method == null)
$method = (int)Configuration::get('PS_PRICE_ROUND_MODE');
if ($method == PS_ROUND_UP)
return Tools::ceilf($value, $precision);
elseif ($method == PS_ROUND_DOWN)
+5 -1
View File
@@ -163,7 +163,11 @@ class TaxCore extends ObjectModel
public static function excludeTaxeOption()
{
return !Configuration::get('PS_TAX');
static $ps_tax = null;
if ($ps_tax === null)
$ps_tax = Configuration::get('PS_TAX');
return !$ps_tax;
}
/**