Komponenty napříč aplikací bez BasePresenteru

TMScz
Člen | 24
+
0
-

Ahoj, měl bych takový obecný dotaz… Zajímalo by mě, jaké je „správné“ řešení, když mám v aplikaci různé komponenty, které potřebuji mít všude dostupné – např. form pole pro vyhledávání, nákupní košík (info v headeru), výpis kategorií atd., ale mám aplikaci v Nette 3 a jdu cestou bez BasePresenteru, ve kterém jsem všechny tyhle komponenty načítal. Doteď jsem ho vždycky používal, takže je to pro mě nové a nevím úplně přesně, jak to má ideálně být.

Zatím jsem si vytvořil Traitu, ve které vše co potřebuji mít „všude“ dostupné připravím, ale tak trochu čekám, že to není úplně správné řešení:)

Jak podobné věci řešíte vy?

Šaman
Člen | 2635
+
+4
-

Nevím, co je v tuto chvíli považováno za best practise, ale já to rozhoduji asi takto:

  • Pokud mám nějakou komponentu v layoutu, vytvářim si jí v příslušném BasePresenteru (tento design může být vícevrstvý, takže třeba i pro kazdý modul apod.)
  • Pokud se používá až v koncových šablonách, tak ji vytvářím také v koncových presenterech, což může zjednoušit traita (pokud je stejná komponenta na více místech).

Obecně mám tedy u sebe abstraktní BasePresentery + layouty a koncové presentery + šablony. A co se kde v šablonách používá, mělo by být definované v odpovídajícím presenteru.