value; } public function save($data = array()) { if(!GlobalSettingEnum::isValidValue($this->key)) { throw new \Exception('Invalid Global Setting Key (' . $this->key . ')'); } parent::save($data); } public static function byKey($key) { return Repository::factory()->byKey($key)->one(); } public static function set($key, $value) { if(!$setting = self::byKey($key)) { $setting = new GlobalSetting(); $setting->key = $key; } $setting->value = is_null($value) || $value === false?'':$value; $setting->save(); return $setting; } }