Globale Konfigurationsvariablen
Sie dienen als zentrale Stelle zur Verwaltung von Konfigurationseinstellungen, die in der gesamten Anwendung verwendet werden. Man findet die Einstellung im App-Menü unter Verwaltung > Administration > Konfiguration.
Use Cases
- Feature Toggles
- Begrenzungen bei Übungen
- Blacklist bei Morphologischen Klassen
- Konfiguration von Lerninhalten
- Systemeinstellungen
Default-Werte
Das Model definiert eine Reihe von Default-Werten, die verwendet werden, wenn keine entsprechende Variable in der Datenbank gefunden wird. Diese sind im const DEFAULT_VALUES-Array definiert. Hier muss als Fallback jede Konfigurationsvariable eingetragen sein, die in der Anwendung verwendet wird. Wenn eine Variable nicht in der Datenbank gefunden wird, wird der entsprechende Default-Wert verwendet.
Abrufen von Werten im Backend
Abrufen einer spezifischen Variable
Anwendungsbeispiele sind z.B. das Abrufen eines spezifischen Wertes für ein Feature Toggle oder Begrenzungen bei Übungen.
if(GlobalConfigVariable::getValue('cfg_max_vocab') === 400) {
// do something
}$isProgressAnalysisEnabled = GlobalConfigVariable::getValue('ft_progressionsanalyse');Abrufen aller Variablen
Um alle Konfigurationsvariablen abzurufen (mit Default-Werten für diejenigen, die nicht in der Datenbank vorhanden sind), verwenden Sie die Methode getAllWithDefaults(). Um eine reduzierte Liste zurückzugeben, die keine geschützten Variablen enthält und die Werte direkt den Schlüsseln zuordnet, kann man getAllWithDefaultsReduced()verwenden.
Frontend: Abrufen der Variablen in Vue
ACHTUNG: Im Frontend werden nur die nicht geschützten Variablen (protected = false) zurückgegeben! Für das Frontend werden die Variablen durch ein Vue-Mixin bereitgestellt, das alle Vue-Instances implementieren müssen. Folgendermaßen kann man die Variablen in einer Vue-Komponente abrufen:
let MaxVocabAmount = this.$root.GlobalConfigVariables['cfg_max_vocab'];Caching
Um die Leistung zu verbessern, werden die Konfigurationsvariablen gecacht. Der Cache wird automatisch vom Cache-Manager aktualisiert, wenn Änderungen an den Variablen vorgenommen werden.
Entwicklungshinweise
- Wenn eine neue Konfigurationsvariable hinzugefügt wird, muss sie auch in der
DEFAULT_VALUES-Liste definiert werden. - Bitte unter
value_typeeinen der vier Typen auswählen: (string,integer,booleanoderjson). - Für's Testen natürlich den Cache deaktivieren 😃
- Bitte beachten, dass bei Variablen mit sensiblen Daten immer
protected = truegesetzt werden muss! - In jedem Fall müssen die Variablen immer auch im Backend überprüft werden, bevor sie verwendet werden, damit man sie nicht im Frontend manipulieren kann.