config.neon, rozdělení services pro určité moduly

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

Ahoj, už několik hodin hledám řešení, zda je možné nějak v config.neon rozdělit services. Myslím tím, zda je možné nějak definovat, které služby jsou pro který modul.

Řeším konkrétně situaci, že chci nějak rozdělit přihlašování pro FrontModule a AdminModule. Klienty mám v DB v jedné tabulce a adminy v jiné. Přihlašování mám pomocí IAuthenticator a ten nemůže fungovat 2× současně.

Třeba něco jako, nevím:

services:
	FrontModule: App\Model\ClientManager
	AdminModule: App\Model\UserManager
	router: App\RouterFactory::createRouter

Díky

Pavel Macháň
Člen | 282
+
+1
-

luke82 napsal(a):

Ahoj, už několik hodin hledám řešení, zda je možné nějak v config.neon rozdělit services. Myslím tím, zda je možné nějak definovat, které služby jsou pro který modul.

Řeším konkrétně situaci, že chci nějak rozdělit přihlašování pro FrontModule a AdminModule. Klienty mám v DB v jedné tabulce a adminy v jiné. Přihlašování mám pomocí IAuthenticator a ten nemůže fungovat 2× současně.

Třeba něco jako, nevím:

services:
	FrontModule: App\Model\ClientManager
	AdminModule: App\Model\UserManager
	router: App\RouterFactory::createRouter

Díky

@luke82 Stačí zaregistrovat 1 službu kterou budeš používat na více místech a druhou které zakážeš autowire a vložíš ji ručně do požadované služby

services:
	- AuthUser
	two:
		class: AuthAdmin
		autowire: no

	- AuthUserManager    # sem se injectne AuthUser
	- AuthAdminManager(@two)

Editoval Pavel Macháň (27. 10. 2015 23:47)

Jiří Nápravník
Člen | 710
+
+5
-

Vykašlal bych se na IAuthenticator, udělal to jako klasickou service se závislostí Nette\Security\User. Více viz zde . Používám spokojeně a bez problému