UserManager v Sandboxu, kde se instancuje?

MW
Člen | 615
+
0
-

Zdravím a prosím o nakopnutí.

Jakou magií si Nette podstrkává tento model UserManager, který sice mám v configu jako

službu
- App\Models\UserManager

ale nikde ji už nevolám a přesto si Nette podstrčí authenticate() z tohoto modelu.

To přece nedělá jen ta implementace rozhraní. To si najde Nette podle názvu?

Moc díky, jen mě to zajímá :)

jiri.pudil
Nette Blogger | 1028
+
+2
-

To přece nedělá jen ta implementace rozhraní.

Vlastně jo :) na tom rozhraní totiž závisí User, a jelikož je UserManager jedinou implementací toho rozhraní v kontejneru, použije Nette právě jej. Více viz autowiring v dokumentaci

Felix
Nette Core | 1189
+
+2
-

MW napsal(a):
jiri.pudil napsal(a):

To přece nedělá jen ta implementace rozhraní.

Vlastně jo :) na tom rozhraní totiž závisí User, a jelikož je UserManager jedinou implementací toho rozhraní v kontejneru, použije Nette právě jej. Více viz autowiring v dokumentaci

Je to tak, Nette samo o sobe registruje radu sluzeb. Pro prihlasovani se pouziva Authenticator skrz tridu User, tzn, pokud v DI kontejneru nejaka takova sluzba implementuje interface IAuthenticator, DIC neleni a nasetuje ji prave do tridy User.

MW
Člen | 615
+
0
-

Stačilo si přečíst ten autowiring :)
Chápu rozhraní, ale tušil jsem, že tomu Nette bude pomáhat :)

Moc díky