UserManager v Sandboxu, kde se instancuje?
- MW
- Člen | 626
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 | 1032
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 | 1247
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.