/**
  * 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.');
     }
 }
Beispiel #2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getInterfaceSettings()
 {
     return $this->hasMany(InterfaceSetting::className(), ['user_id' => 'id']);
 }