Vlozeni rendereru do formulare napevno

dehtak
Člen | 113
+
0
-

Ahoj mam otazku nejde nejak prez extensions nebo jinak vlozit do formulare trvale svuj renderer ? Popripade i trannslator.
Abych pokazdy kdyz vytvarim novej form nemusel psat $form->setRenderer… .
Nechci ale vytvaret tovarnu.
Myslim ze by to slo asi prez decorator ?

Editoval dehtak (27. 6. 2021 8:13)

MajklNajt
Člen | 471
+
+2
-

továrnička je presne na to určená, aby si nemusel pri každom forme robiť ten istý setup…

Marek Bartoš
Nette Blogger | 1153
+
0
-

Jak psal Majkl, přes factory. Formulář není služba a tak ho nemůžeš konfigurovat přes extension ani decorator (DecoratorExtension)

dehtak
Člen | 113
+
0
-

jo ale me u tech tovaren stve ze je musi injektovat.
Misto abych napsal new form;
Pak v tom mam bordel neco se musi injektovat nekde muzu napsat new class.

Treba napriklad u latte jde vlozit napevno translator a nemusim pokazdy psat $this->template->setTranslator(…)
Proc neco takovyho nejde u form ?
Takze to nejde ani pres extension afterCompile addBody ??
Ze by to vytahlo treba moji tovarnu.

pokud bych pouzil jen renderer tak ji injektovat nemusim ale chci tam taky narvat translator a to bych potom injektovat musel aby se do ty tridy ten translator vlozil

Editoval dehtak (27. 6. 2021 12:53)

Marek Bartoš
Nette Blogger | 1153
+
0
-

Protože latte ti vytváří TemplateFactory, což je služba registrovaná v DIC. Kdybys latte template vytvářel přes new, tak bys tam translator také neměl.

dehtak
Člen | 113
+
0
-

a ani takhle by to neslo tohle je jen priklad vytvoreni extra input pole

 Forms\Container::extensionMethod('addDate', function ($form, $name, $label = null) {
                        return $form[$name] = new DateControl($label);
 });

ze by se to nejak upravilo a automaticky to tam vkladalo renderer ? a translator ?

Marek Bartoš
Nette Blogger | 1153
+
+1
-

Mohl by sis podědit formulář a v konstruktoru nastavovat renderer ze statické property. Property bys nastavil v initialize() metodě DIC. Do initialize() dovedeš přidat kód přes extension.
Jen by asi kdokoli kdo by to kdy chtěl upravit, debugovat nebo testovat si přilepil tvoji fotku na boxovací pytel a já bych nebyl výjimka.

dehtak
Člen | 113
+
-3
-

kdo by to upravoval ? Pisu to pro me a pouzivat to budu jen ja