Есть функция 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(' ', []);
второй параметр массив. Он обязателен? И что в него передают?