MyUser extends User service

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

Zdravim,

neviem si rady, a nikde som nenasiel odpoved (snad uz od unavy nestracam zrak a som to niekde prehliadol).

Chcem si vytvorit potomka triedy User (MyUser extends), ktory sa mi bude starat o prihlaseneho uzivatela. Zatial potrebujem zistit ID sessions, ktory ziska prihlaseny uzivatel, aby sa ulozil do DB, prip. overoval, ci je aktualny (1 uzivatel moze byt max 1 krat prihlaseny).

Nedari sa mi docielit, aby Environment::getUser() vratil MyUser.

Triedu mam vytvorenu (zatial prazdnu), v bootstrap.php mam toto:
Environment::setServiceAlias('MyUser', 'user');

a v config.ini:

service.Nette-Web-User = MyUser

Aplikacia mi ale hadze chybu: Service ‚MyUser‘ not found.

Vie mi niekto poradit, co s tym? Prip. nacrtnut lepsie riesenie? (Ukladat session do DB sa mi nechce)

P.S.: Tento postup zamyslam, pretoze som zistil, ze k Session ID sa mozem dostat cez User->getSession(), ale ta je protected, t.j. z „vonku“ sa tam nedostanem.

Panda
Člen | 569
+
0
-

Stačí mít v config.ini toto:

service.Nette-Web-IUser = MyUser

setServiceAlias není potřeba. Navíc jsi ho špatně pochopil, jako první argument je název služby a jako druhý nový alias, takže by to vypadalo takto:

Environment::setServiceAlias('Nette\\Web\\IUser', 'MyUser');