robotLoader a config.neon

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

Ahoj, hledal jsem, ale nepřišel kde mám chybu.
Mám službu, která chce použít RobotLoader a dostává ho v konstruktoru.
Nejdřív jsem načítal RobotLoader v bootstrapu, ale abych ho službě mohl předat v config.neon (takto:

mojeSluzba:
	class: Nejaka\Sluzba(@robotLoader)

), zkusil jsem RobotLoader nastavit rovnou v configu:

services:
	robotLoader:
		arguments:
			directory: [nejake/cesty/k/tridam]
		run: true

ovšem to způsobí, že jakmile je někde dál třeba toto:

	user: Nejaka\Trida\User

vyhodí to Class Nejaka\Trida\User used in service 'user' has not been found or is not instantiable.
Třída samozřejmě existuje, jen jí ještě nenačetl RobotLoader. Proč?

Když mám RobotLoader v bootstrapu, nezná to službu @robotLoader. $container->addService() zase můžu zavolat až potom co se načte neon…

Tak nějak nevim jak toto vyřešit, poradíte prosím někdo znalý a chytrý? :) Díky mooc

Editoval hejdav (28. 2. 2013 14:08)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Je to tak, RobotLoader již není službou (protože je potřeba před tím, než budou autoloadovány třídy všech služeb). Řešením je tedy pravděpodobně manuální registrace služby v boostrapu.