Если конфигурация отсутсвует вернуть пустой build array и закинуть ошибку в drupal logger

Главные вкладки

Аватар пользователя towi towi 8 апреля 2022 в 8:01

Есть функция getCity() которая возвращает название города. Если ip пользователя существует и сайт http://ip-api.com может определить по ip адресу город локацию пользователя то название города берется из json, если нет то из конфига.

<?php

  

public function getCity() {
    
$ip '193.62.157.66';
    try {
      
$response_ip $this->httpClient->get('http://ip-api.com/json/' $ip);
      
$response_data_ip $response_ip->getBody();
      
$data_ip json_decode($response_data_ip);
      if (
$data_ip->status == 'success') {
        return 
$data_ip->city;
      }
      else {
        return 
$this->configFactory->get('sydneypro_weather.settings')->get('weather_city');
      }
    }
    catch (
RequestException $e) {
      return 
FALSE;
    }
  }

?>

Но конфигурация добавлена в ignore с помощью модуля Config ignore и при переносе сайта на другой environment, моя конфигурация с api key и названием города (которая игнорируется) не будет создана в БД во время drush cim. Когда конфигурация отсутствует, мне нужно вернуть пустой build array и и закинуть ошибку в drupal logger

Я рассмотрел несколько примеров, где логгер вызывается с помощью \Drupal::logger(' ')->error(' ', []);. Но не совсем понимаю как правильно это сделать.

1. В logger(' ') параметром передается chanel. Что это такое?
2. В error(' ', []); второй параметр массив. Он обязателен? И что в него передают?