Formuláře předání translátoru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MartinitCZ
Člen | 580
+
0
-

Zajímalo by mě, jak nejjednodušeji předat translátor do továrničky formuláře?

Osobně se mi totiž nechce do každého presenteru injectnou translator a poté ho předávát formuláři v createComponent<>.

Jak to řešíte vy?

Editoval martinit (14. 12. 2013 16:23)

Pavel Macháň
Člen | 282
+
0
-

martinit napsal(a):

Zajímalo by mě, jak nejjednodušeji předat translátor do továrničky formuláře?

Osobně se mi totiž nechce do každého presenteru injectnou translator a poté ho předávát formuláři v createComponent<>.

Jak to řešíte vy?

Vytvořit si továrničku a nechat nette aby se postaralo o autowire pomocí konstruktoru

Editoval EIFEL (14. 12. 2013 18:29)

David Matějka
Moderator | 6445
+
0
-
MartinitCZ
Člen | 580
+
0
-

@**matej21**: Díky za inspiraci.
Vychází mi z toho, že tak nebo tak, to musím do každého presenteru injectnout.

David Matějka
Moderator | 6445
+
0
-

ano, ale uz tam nebudes injectovat translator, ale bud obecnou tovarnicku, ktera pouze vytvori instanci Formu a nastavi translator, nebo (a to je lepsi) tovarnicku na konkretni formular. budes mit tedy hnedka mensi a hezci presenter

jestli te stve to injectovani, koukni na kdyby/autowired na autowired component factories (v doc je ukazka pouziti)

MartinitCZ
Člen | 580
+
0
-

Tak jsem to zkusil (bod 6.) a tvé řešení je nakonec nefunkční. Nikdy se nedostanu k $this->presenter a tim pádem nemohu provést redirect.

Editoval martinit (19. 12. 2013 15:44)

David Matějka
Moderator | 6445
+
0
-

k presenteru se dostanes $form->presenter

ja osobne ale preferuju navesit na formular jeste jednu udalost primo v presenteru, ktera pouze ukaze flashmessage a presmeruje..

kdyz to upresnim, tu udalost navesuju na komponentu ktera obaluje formular, vice zde, nepouzivam tedy ConcreteFormFactory, ale pouze BaseFormFactory, ktere vyuzivam v komponente, ktera obaluje ten form…

MartinitCZ
Člen | 580
+
0
-

@**matej21**: JJ chápu. Toto odědělení je možná ‚best practice‘, ale mě se nelíbí. Zpracování formuláře chci mít u něj. V opačném případě i samotné vytvoření dormuláře můžu mít v presenteru.

Njn, ale celý problém je v tom, že stále nemám linkFactory a bez presenteru se v podstatě link neudělá!

David Matějka
Moderator | 6445
+
0
-

a kde zpracovavas ten form? jak rikam, k presenteru se dostanes pres $form->presenter