[2010–04–13] přejmenování metod User::authenticate, signOut, isAuthenticated → login, logout, isLoggedIn

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8218
+
0
-

Na základě hlasování komunity došlo k přejmenování metod třídy Nette\Web\User souvisejících s autentifikací.

  • authenticate() → login()
  • signOut() → logout()
  • isAuthenticated() → isLoggedIn()
  • getSignOutReason() → getLogoutReason()
  • $onAuthenticated → $onLoggedIn
  • $onSignedOut → $onLoggedOut

Změna se týká verzí 0.9 i 1.0. Ve verzi 0.9.4 lze spíše než o přejmenování hovořit o vytvoření aliasů, protože původní názvy jsou stále funkční a nevyhazují žádné chybové hlášky.

Patrik Votoček
Člen | 2221
+
0
-

Můžu mít dotaz proč jsou aliasi i v 1.0?

Cifro
Člen | 245
+
0
-

A nemalo by byť zmenené authenticate() na login() aj v interface IAuthenticator?

Honza Kuchař
Člen | 1662
+
0
-

Neměla by být verze 1.0 úplně bez aliasů? Prostě nezatížená minulostí?

Editoval honzakuchar (14. 4. 2010 10:35)

Petr Motejlek
Člen | 293
+
0
-

honzakuchar napsal(a):

Neměla by být verze 1.0 úplně bez aliasů? Prostě nezatížená minulostí?

S tím plně souhlasím. Nevím, proč máme pořád nutkání být zpětně kompatibilní – podívejte se na MSIE, ten je tak zpětně kompatibilní, že si dokáže 15 let s sebou táhnout jednu chybu… Nová verze je od toho, že je nová ;).

Honza Marek
Člen | 1664
+
0
-

Cifro napsal(a):

A nemalo by byť zmenené authenticate() na login() aj v interface IAuthenticator?

Jedině pokud by se přejmenoval i ten interface.

Honza Kuchař
Člen | 1662
+
0
-

Když nová verze, ať je nová. Když je změna, tak ať je úplná. Ve verzi 1.0 bych přejmenoval úplně všechno co se toho týká. Žádná zpětná kompatibilita. V 1.0 bude kotrmelec a všichni s tím počítají.

Já to už docela dlouho dělám tak, že i nové weby vyvíjím na stabilních verzích nette a framework neaktualizuji, protože tím můžu klidně otevřít nějakou bezpečnostní díru. (teda kromě nějakých bezpečnostních záplat, samozřejmě)

David Grudl
Nette Core | 8218
+
0
-

IAuthenticator a autenticate() je naprosto v pořádku, to je prostě vykonavatel autentifikačního procesu, nikoliv procesu přihlášení.

Do verze 1.0 samozřejmě plánuju odříznou zpětnou (ne)kompatibilitu, ale rovnou zrušit takto používané metody by bylo drsné. Pro začátek přidám nějakou E_WARNING.

veena
Člen | 98
+
0
-

honzakuchar napsal(a):

Když nová verze, ať je nová. Když je změna, tak ať je úplná. Ve verzi 1.0 bych přejmenoval úplně všechno co se toho týká. Žádná zpětná kompatibilita. V 1.0 bude kotrmelec a všichni s tím počítají.

Já to už docela dlouho dělám tak, že i nové weby vyvíjím na stabilních verzích nette a framework neaktualizuji, protože tím můžu klidně otevřít nějakou bezpečnostní díru. (teda kromě nějakých bezpečnostních záplat, samozřejmě)

Můj souhlasný názor:

Dokonalá release policy pro vývoj Open Source
http://www.facebook.com/note.php?…

Případnou diskuzi k tomu nechť případný diskutující případně založí v případném jiném threadu.

David Grudl
Nette Core | 8218
+
0
-

Už to prosím nepitvejme. O (ne)kompatibilitě mezi 0.9 a 1.0 jsem se bavili dříve, stejně tak je compatibility-policy v Nette historicky poměrně zřejmá, ke všemu vede vždy jen jedna cesta.

Je pravda, že jsem to napsal v úvodním příspěvku blbě – opravil jsem jej. Chtěl jsem vydat stabilní verzi a neunáhlit se s razantní změnou vzniklou na poslední chvíli.

V současných dev verzích se už vyhazuje E_WARNING, s větším časovým odstupem je z 1.0 úplně odstraním.

hrach
Člen | 1838
+
0
-

Z jakého důvodu nebyla přejmenována metoda setAuthenticated() ?

Jan Tvrdík
Nette guru | 2595
+
0
-

Pokusil jsem se aktualizovat dokumentaci, pokud narazíte na opomenuté místo, tak ho prosím opravte sami nebo mi dejte vědět a já to spravím.

lkrocek
Člen | 3
+
0
-

Ahoj, dneska jsem si stahnul Nette Framework 1.0 alpha – PHP 5.2 – prefixed

a pri logovani mi to hlasi:
PHP Warning: NUser::authenticate() is deprecated; use login() instead. in …\libs\Nette\Web\User.php:436

asi se na tuto verzi zapomnelo

mmj. koukam ze to ted uz ze stranky download zmizelo, mam prejit spis na klasicke Nette bez prefixu, nebo to uteklo nejakou nahodou? :-)

Editoval lkrocek (28. 5. 2010 14:11)

Aurielle
Člen | 1281
+
0
-

A co máš ve svém kódu? authenticate nebo login?

lkrocek
Člen | 3
+
0
-

gmvasek napsal(a):

A co máš ve svém kódu? authenticate nebo login?

mas pravdu mam tam chybny authenticate, nejak jsem ho prehledl a k tomu me spletla ta cesta „…\libs\Nette\Web\User.php:436“ a ja si najivne myslel ze je chyba v tom User skriptu