Dáta pre celý web z databázy podľa url

matik58
Člen | 2
+
0
-

Čaute,

zaujímalo by ma, či ste niekto riešili alebo ako to najlepšie vyriešiť.

  1. Mám dve domény domena.sk a domena.cz.
  2. Na základe routingu získam persistentné parametre „host“ (domena) a „locale“ (sk|cz).
  3. Následne so získanými údajmi v presenteri na „startup“ chcem pingnúť DB (tabuľka „mutation“ so stĺpcami „id“, „host“, „locale“) a identifikovať o ktorú mutáciu webu ide na základe „host“ a „locale“.
  4. Získané „id“ chcem následne používať v každom presenteri a zároveň aj v každej komponente, pretože každá DB tabuľka bude mať FK „mutation_id“.

Aktuálne to riešim tak, že presenter má atribút, ktorý sa naplní v metóde „startup“ a každý komponent má tiež tento atribút a settujem ho pri create() volaní komponenty.

Moja otázka znie, ako najlepšie AutoWirovať „mutation_id“ skrz celý systém.

Ďakujem.

Editoval matik58 (14. 11. 1:48)

MajklNajt
Člen | 493
+
0
-

ahoj, nahradil by som ten tvoj atribút servisou, do ktorej v startup iba predáš $host a $locale, a túto servisu potom žiadaj v constructore každej triedy, ktorá potrebuje pracovať s mutation_id

class MutationProvider
{
	private int $mutationId;

	public function __construct(private MutationModel $model) {}

	public function setParams(string $host, string $locale)
	{
		$this->mutationId = $this->model->findOneBy($host, $locale);
	}

	public function getMutation(): int
	{
		return $this->mutationId;
	}
}

MutationModel je obálka nad databázou (neviem, či používaš Nette DB, Doctrine, Nextras…)

matik58
Člen | 2
+
0
-

Perfektné, ďakujem.