Redraw snippetu v komponentě vyvolaný jinou komponentou, získání uživatele mimo presenter, autowiring tříd

krcuk41
Člen | 12
+
0
-

Ahoj,

snažím se vyřešit několik problémů a nejsem si úplně jistý jestli to dělám správně. Rád bych se zeptal na pár otázek.

1) Rewrite snippetu v komponentě vyvolané jinou komponentou

Mám dvě komponenty, jedna slouží pro výpis a druhá pro přidání nového záznamu. Při přidání nového záznamu volám po úspěšném zpracování následujíccí kód.

$this->getPresenter()['komponenta']->redrawControl('snippet');

Chci se zeptat jestli to jde vyřešit lépe. Tohle mi příjde jako prasárna.

2) Získání uživatele mimo presenter

V presenteru je uživatel dostpný přes $this->user. Co kdybych ho potřeboval třeba v komponentě nebo v úplně jiné třídě. Dá se něják jednoduše získat aniž bych ho předával konstruktorem nebo přes set.

3) Autowiring tříd

Používám autowiring na komponenty. Je vhodné ho používat třeba i na obyčejné třídy nebo helpery, které mají význam pro mě ale pro nette ne?

Kdybych to chtěl spojit s bodem 2 a získat v takto vytvořené třídě uživatele jde to jinak než ho předat přes továrničku?

Díky za rady.

Pavel Kravčík
Člen | 1180
+
+1
-
  1. Možná by stálo za úvahu je dát do sebe nebo použít eventy.
  2. Stačí si předat přes DI \Nette\Security\User.
CZechBoY
Člen | 3608
+
+1
-
  1. resil bych asi pres eventy, je to univerzalnejsi a nemusis skoro nic resit
  2. predej pres DI – konstruktor/setter, jina moznost by byla magie
  3. vadi necemu autowiring nebo proc se ptas?
krcuk41
Člen | 12
+
0
-

CZechBoY napsal(a):

  1. resil bych asi pres eventy, je to univerzalnejsi a nemusis skoro nic resit
  2. predej pres DI – konstruktor/setter, jina moznost by byla magie
  3. vadi necemu autowiring nebo proc se ptas?
  1. Můžeš hodit ukázku? Bylo by to super.
  2. Chci se jen informovat jestli to neporušuje nějáké konvence.
jiri.pudil
Nette Blogger | 1028
+
0
-
  1. https://jiripudil.cz/…m-presenters
  2. Dependency Injection je de facto konvence :)
krcuk41
Člen | 12
+
0
-

krcuk41 napsal(a):

CZechBoY napsal(a):

  1. resil bych asi pres eventy, je to univerzalnejsi a nemusis skoro nic resit
  2. predej pres DI – konstruktor/setter, jina moznost by byla magie
  3. vadi necemu autowiring nebo proc se ptas?
  1. Můžeš hodit ukázku? Bylo by to super.
  2. Chci se jen informovat jestli to neporušuje nějáké konvence.

Špatně jsem to napsal :)

  1. Můžeš hodit ukázku? Bylo by to super.
  2. Chápu
  3. Chci se jen informovat jestli to neporušuje nějáké konvence.