Konfigurace lokálních odlišností v mezinarodni aplikaci a statické metody
- Čaj
- Člen | 1
Ahoj,
jedna nette aplikace beží na více doménách pro různé země. Napříč
zeměma je spousta věcí, který se lišej – měny, api klíče, formát
čísel, bankovní účty a mnoho dalšího.
Jak to funguje teď
Teď pro každou zemi existuje jeden config neon soubor s těmahle hodnotama, ten je použit jako parametr služby countryConfig, ktery se pak injectuje, kde je potreba.
countryConfig:
class: \Config\CountryConfig
arguments: [%countryConfig%]
Kde to naráží
Problém je ve statických metodách, priklad webalize(), kdy je potreba, aby se v kazde zemi nektere znaky prekladaly trochu odlisne. Otazkou je, jak dostat do staticke metody lokalni konfiguraci pro zemi a obecne tak predejit situacim jako je tahle.
public static function webalize($str)
{
if (AppEnvironment::getCountry() === 1) {
$replace = ['a', 'b', 'c'];
$to = [1, 2, 3];
} else {
$replace = ['a', 'b', 'c'];
$to = [10, 20, 30];
}
$replaced = str_replace($replace, $to, $str);
return $replaced;
}
Jak tohle řešíte vy?
Díky za náměty :)
- CZechBoY
- Člen | 3608
Udělal bych si svoji službu na webalize, tý bych předal nějakou konfiguraci země/lokalizace přímo v konstruktoru.
Tuhle službu bych potom samozřejmě používal tam, kde teď používáš webalize. Taky je potřeba nahradit Latte filtr (pokud používáš).
Editoval CZechBoY (17. 8. 2017 10:19)