public function getSettings()
{
if (\Yii::$app instanceof Application) {
return $this->fetchDefaultSettings();
}
$key = $this->getCacheKey();
$dependency = new TagDependency(['tags' => [$this->className(), $this->className() . (string) $this->namespace]]);
$settingsValues = \Yii::$app->cache->get($key);
if ($settingsValues === false) {
$settingsValues = $this->fetchDefaultSettings();
//Настройки для текущего сайта
if ($site = \Yii::$app->currentSite->site) {
$settingsValues = ArrayHelper::merge($settingsValues, $this->fetchDefaultSettingsBySiteCode($site->code));
}
//Настройки для текущего пользователя
if (!\Yii::$app->user->isGuest) {
$settingsValues = ArrayHelper::merge($settingsValues, $this->fetchDefaultSettingsByUserId(\Yii::$app->user->identity->id));
}
\Yii::$app->cache->set($key, $settingsValues, 0, $dependency);
}
return $settingsValues;
}