$_SESSION a Latte – Ako správne vypisovať údaje zo SESSION
- Andurit
- Člen | 131
Č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
- MartinitCZ
- Člen | 580
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
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); ?>
:)