/** * Get settings for an user interface * @param int $user User ID * @param string $interface Interface ID * @return ModelInterfaceSetting */ public function get($user, $interface) { if ($user !== null) { $cacheKey = 'interface_settings:' . $user . '.' . $interface; $interfaceSettings = Yii::$app->commonCache->get($cacheKey); if ($interfaceSettings === false) { $interfaceSettings = ModelInterfaceSetting::findOne(['interface_id' => $interface, 'user_id' => $user]); if ($interfaceSettings === null) { $interfaceSettings = new ModelInterfaceSetting(); } Yii::$app->commonCache->set($cacheKey, $interfaceSettings, $this->cacheDuration, new TagDependency(['tags' => [self::getCacheTag($user, $interface)]])); } return $interfaceSettings; } else { throw new InvalidParamException('User ID could not be null.'); } }