Config-Service
Um auf eine beliebige Config-Variable zuzugreifen, die in den h0stware-Einstellungen oder in einem Modul gesetzt wurde, kannst Du die Klasse ConfigService verwenden.
Auf den Config-Service zugreifen
Um auf den Config-Service zuzugreifen, kannst Du – wie überall sonst auch – die Laravel-Dependency-Injection-Funktion app() verwenden. Diese gibt die angeforderte Klasseninstanz zurück.
Werte speichern
Um Config-Werte zu speichern, kannst Du die Funktion save() des Config-Services verwenden. Die Funktion nimmt als ersten Parameter ein Array aus Key-Value-Paaren von Config-Elementen und als zweiten Parameter den Boolean salesChannelAware.
Wenn Du salesChannelAware auf true lässt, werden die Config-Elemente in den aktuell aktiven Sales Channel geschrieben. Wenn Du ihn auf false setzt, werden die Config-Elemente in den globalen Geltungsbereich aller Sales Channels in h0stware geschrieben.
Siehe das folgende Beispiel, um Config-Einträge im aktuell ausgewählten Sales Channel oder im globalen Geltungsbereich zu speichern:
$configArray = [
"HwMollie.sandbox" => false,
"HwMollie.key.live" => "live key"
];
// save the config
app(ConfigService::class)->save($configArray);
app(ConfigService::class)->save($configArray, false); // save to global scopeConfig-Wert(e) abrufen
Um einen Wert über den Key abzurufen, kannst Du die Funktion get() des Config-Services verwenden. Die Funktion nimmt als ersten Parameter den Key des angeforderten Config-Elements und als zweiten Parameter den Boolean salesChannelAware.
Die Keys verwenden immer die Punktnotation (.), um Bereiche von Config-Werten anzugeben. Wenn Du z. B. alle Config-Werte eines Punkt-Präfixes möchtest, kannst Du auch nur das Präfix als Key angeben. Sieh Dir das folgende Beispiel für ein besseres Verständnis an:
$configService = app(ConfigService::class);
$configService->get("HwMollie");
// returns following:
array:3 [▼
"sandbox" => "false"
"handler" => array:2 [▼
"paysafecard" => "true"
"useMollieLimits" => "true"
]
"key" => array:2 [▼
"live" => "vpsnow LIVE"
"test" => "TEST api"
]
]
$configService->get("HwMollie.handler");
// returns following:
array:2 [▼
"paysafecard" => "true"
"useMollieLimits" => "true"
]
$configService->get("HwMollie.handler.paysafecard");
// returns following:
"true"Elemente flach machen / entfalten
Wie Du bereits bemerkt hast, verwenden die Keys der Config-Elemente die Punktnotation:
array:3 [▼
"HwMollie.sandbox" => "false"
"HwMollie.handler.paysafecard" => "true"
"HwMollie.key.live" => "livea"
]Du kannst die Funktion unflattenConfigArray() des Config-Services verwenden, um aus der Punkt-Syntax ein mehrdimensionales Array zu erstellen:
array:1 [▼
"HwMollie" => array:3 [▼
"sandbox" => "false"
"handler" => array:1 [▼
"paysafecard" => "true"
]
"key" => array:1 [▼
"live" => "livea"
]
]Umgekehrt kannst Du die Funktion flattenConfigArray() verwenden, um aus einem mehrdimensionalen Array ein eindimensionales Array in Punkt-Syntax zu erstellen, was z. B. zum Speichern der Config-Werte erforderlich ist.