Config – init – nova konfigurace

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

Zdravim,

Lamu si hlavu nad jednim ukolem. Mam rozsireni do formularu, nechci pro to vylozene psat extension. A tedka. Tohle rozsireni navesuje metodu do Nette\Forms\Container pres extensionMethod.

Potrebuju tuhle registraci nejak propasovat do SystemContainer::initialize.

Jestli to chapu spravne, tak to nejspis vubec aktualne bez rozsireni nejde nebo jen nejakymy hacky, jesti vubec?

Napadlo me, ze by se v configu mohla vyclenit dalsi sekce, napriklad init.

init:
	- MyForms::bindMethods():

Kod by byl uplne jednoduchy, proste by to v afterCompile appendovalo do tela metody initialize. Co si o tom myslite?

Pripadne bych mohl pripravit PR. Jesti to neni uplne kravina. Jestli to vsak ale jde nejak registrovat normalne bez rozsireni, sem s tim ;-).

Dikes. Felix

newPOPE
Člen | 648
+
0
-

Ale ved o tom cele rozsirenia su, ci?

Zax
Člen | 370
+
+3
-

Můžeš si vytvořit službu, tu zaregistrovat v configu a dát ji tag „run“ – tato služba se pak v metodě initialize automaticky spustí (vytvoří – zavolá se její konstruktor, kde už si můžeš dělat co chceš).

Felix
Nette Core | 1245
+
0
-

Pokud ale chces staticky neco zavolat, tak mi tohle nepomuze.

Zax
Člen | 370
+
0
-

Mno, tak buď můžeš vzít obsah tý statický metody a přesunout ho do toho konstruktoru, a nebo můžeš klidně z konstruktoru zavolat staticky co potřebuješ… každopádně se tím vyhneš psaní vlastní extension.