Náhodné přegenerovávání Nette DI Containeru

Ivorius
Nette Blogger | 119
+
0
-

V development modu mi dochází k náhodnému přegenerovávání DI containeru i když nic neměním. Zjistil jsem, že to způsobuje změna času na souboru /temp/cache/Nette%5CBridges%5CApplicationDI%5CApplicationExtension – což je jen prázdný soubor.

Ten soubor touchne PresenterFactoryCallback, ale nevím kde hledat chybu.

Nette\Application 2.4.11 na windows

Ivorius
Nette Blogger | 119
+
0
-

Pokročil jsem v hledání a je to tím, že v tu chvíli není nalezen presenter dle $this->container->findByTag('nette.presenter')

Asi to způsobuje to, že mám své presentery ve svých Extension. Musím je tedy registrovat zvlášť?

Ivorius
Nette Blogger | 119
+
+5
-

Tak jsem na to po pár hodinách přišel :D Způsobuje to, protože jsem sice měl definované procházení robotLoaderu v bootstrapu

$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->addDirectory(__DIR__ . '/../app_core/')
	->addDirectory(__DIR__ . '/../app_custom/')
	->register();

ale v configu jsem neměl nastaveno scanDirs, což je pro presentery podstatné

application:
	errorPresenter: Error
	scanDirs:
		- %appDir%/../app_custom
		- %appDir%/../app_core
Matey
Člen | 142
+
0
-

Dobre vedieť, ja som skúšal vypínať xdebug, zvyšovať opcache limit ale stále som videl 2s rozdiel medzi /app a /src. Neskôr som si všimol že mi to stále kompiluje dic ale toto nastavenie ma vôbec nenapadlo. Diky

Petr Parolek
Člen | 455
+
+1
-

Ivorius napsal(a):

Tak jsem na to po pár hodinách přišel :D Způsobuje to, protože jsem sice měl definované procházení robotLoaderu v bootstrapu

$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->addDirectory(__DIR__ . '/../app_core/')
	->addDirectory(__DIR__ . '/../app_custom/')
	->register();

ale v configu jsem neměl nastaveno scanDirs, což je pro presentery podstatné

application:
	errorPresenter: Error
	scanDirs:
		- %appDir%/../app_custom
		- %appDir%/../app_core

několik týdnů hledám zádrhel a když jsem zadal do vyhledávání na foru PresenterFactoryCallback, abych zjistil, co tato třída dělá, najdu řešení. Díky moc @Ivorius