Подготовка параметров компонента в class.php и их использование

Рейтинг: 2.2814  
Новая
Предложил i_Vegas 11.12.2014 16:09:04

Подготовка параметров компонента в class.php и их использование

Считаю, что использование глобальных переменных во всех методах компонента не самый лучший подход (пример проблемы с SITE_ID в компоненте).

Пример sale.basket.basket.line:
public function executeComponent()
   {
      ...
      if($this->arParams["SHOW_TOTAL_PRICE"] == "Y")
         $this->arResult["TOTAL_PRICE"] = CCurrencyLang::CurrencyFormat(
            $this->arResult["TOTAL_PRICE"],
          CSaleLang::GetLangCurrency(SITE_ID), // причина идеи  
         /*CSaleLang::GetLangCurrency($this -> arParams ["SITE_ID"])*/, // например
         true
           );
         ...
     } 
В выше указанном примере используется SITE_ID в методе executeComponent (и еще в 6 местах).
Если бы ограничить использование глобальных переменных и констант в компоненте одним методом для их сбора (для чего есть onPrepareComponentParams), тогда достигли бы большей гибкости в наследовании компонентов.

Рейтинг: 0  
i_Vegas 16.12.2014 12:28:02
Скорее может  это дело прикрепить рекомендацию к курсам.
И еще: даже если константа или глобальная переменная обязательная в методе, то всегда можно вынести ее приватным параметром.