$_SESSION a Latte – Ako správne vypisovať údaje zo SESSION

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

Čaute,
riešim dilemu so $_SESSION. Asi na väčšine webov je akési prihlásenie a následne niekam vypisujete napr meno užívateľa a podobne.

Doteraz som tento aspekt riešil prostredníctvom SESSION. Teda pri úspešnom prihlásení vložíme do session nick užívateľa a následne ho na stránke vypisujeme cez klasické echo.

Ako je to ale v prípade Latte? Prípadne celkovo máte niekto iný a lepší spôsob ako tento údaj o užívateľovi ukladať a následne zobrazovať?

Vopred vďaka všetkým

vymak
Člen | 92
+
0
-

Ahoj, v Latte máš přímo dostupnou proměnnou $user

Přihlášený uživatel {$user->identity->data['username']}

Editoval vymak (10. 11. 2014 21:20)

Andurit
Člen | 131
+
0
-

Super, vďaka za odpoveď.

Editoval Andurit (10. 11. 2014 22:19)

MartinitCZ
Člen | 580
+
+2
-

Správně to je:

{$user->identity->username}

Nimcéně nejlepší způsob je identity vůbec nepoužívat, časem by se mohlo stát, že díky tomu narazíš např. při editaci uživatele 3. osobou. V identitě se data neaktualizují.

amik
Člen | 118
+
0
-

Tak zásadní otázka je, jestli Latte používáš samostatně, nebo jako součást Nette (a používáš Nette\Security \User pro přihlášení uživatelů). Ve druhém případě se o tahání uživatele ze session vůbec nestaráš, Nette ti skrze Nette\Security\User dá kompletní info o uživateli, jak uvádí kolegové v ostatních odpovědích.

Pokud bys Latte používal samostatně jako šablonovací systém bez Nette, musíš do něj údaje o přihlášeném uživateli nějak dostat sám.
Ale koneckonců, trochu tu pleteme jablka a hrušky – Latte je „vlastně jen“ syntaktický cukřík pro zápis PHP/HTML (nebo spíš vagón prvotřídního třtinového bio cukru), dá se říct, že <?php echo htmlspecialchars($_SESSION['username']) ?> je totéž co {$_SESSION['username']} a je úplně stejný prohřešek proti dobrým mravům tohle napsat v čisté PHP šabloně, jako v Latte :) na primitivních webech tolerovatelné, na složitějších projektech bych použil/vytvořil nějaký objektový obal raději než v šabloně přímo vypisovat session, nehledě na to, zda v Latte, PHP nebo jinde. ono i bez Latte můžu zapsat <?php echo htmlspecialchars($user->identity->name); ?> :)