Beispiel #1
0
 public function provider($provider, array $options = [])
 {
     $class = 'app\\modules\\autoparts\\components\\BrxProvider';
     if (!empty($access = $this->getAccess($provider, $options))) {
         $options = BrxArrayHelper::array_replace_recursive_ncs($options, $access);
     }
     if (!empty($shippingPeriod = $this->getShippingPeriod($provider, $options))) {
         $options = BrxArrayHelper::array_replace_recursive_ncs($options, $shippingPeriod);
     }
     $provider = new $class($provider, $options);
     return $provider instanceof BrxProvider ? $provider : false;
 }
Beispiel #2
0
 /**
  * Собираем все параметры для выполнения метода по следующему алгоритму: [параметры_указанные_в_конфигурации] <- [параметры_указанные_в_конфигурации_для_всех_методов] <- [парметры_указанные_при_вызове_метода]. Приоритет увеличивается слева на право.
  * @param $method string метод для которого собираются параметры
  * @return array все параметры
  * TODO условие isParamsAsArray - костыль который требует уничтожения на самом глубоком уровне!!!)))
  */
 private function getOptions($method, array $options)
 {
     if (!($accessOptions = $this->getAccessOptions($method))) {
         return false;
     }
     $options = Yii::$app->getModule('autoparts')->converter->run($this->provider_name, $method, $options);
     $options = BrxArrayHelper::array_replace_recursive_ncs($this->methods[$method]['params'], $this->methodsOptions, $accessOptions, $options);
     //видоизменяем параметры по шаблону
     if (isset($this->authParamsTemplate)) {
         foreach ($this->authParamsTemplate as $param => $value) {
             if (isset($options[$param]) && isset($options[$value])) {
                 $options[$param] = $options[$value];
                 unset($options[$value]);
             }
         }
     }
     if ($this->isParamsAsArray) {
         $options = [$options];
     }
     return $options;
 }