Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> przekazywanie obiektu w sesji, obiekt z danymi zalogowanego uzytkownika
a79rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

Ostrzeżenie: (0%)
-----


witam
mam klase Uzytkownik w niej sa rozne metody do obslugi danych uzytkownika oraz do pobierania ich. w konstruktorze poprostu ladowane sa z bazy za pomoca PDO dane uzytkownika. czy mozna jakos to zrobic, zeby przy kazdym przeladowaniu strony nie tworzyc nowego obiektu tylko go przekazywac jakos za pomoca sesji? wiem ze uzywa sie do tego serialize/unserialize , a moze z Singletonem cos pokombinowac ?
chcialbym np zmieniac dane uzytkownika w obiekcie $uz, pozniej wywolac metode np. $uz->ZapiszDane() i tyle.

Ten post edytował a79rtur 1.05.2006, 16:53:19
Go to the top of the page
+Quote Post
konys
post
Post #2





Grupa: Zarejestrowani
Postów: 100
Pomógł: 7
Dołączył: 5.11.2005

Ostrzeżenie: (0%)
-----


Cytat
chcialbym np zmieniac dane uzytkownika w obiekcie $uz, pozniej wywolac metode np. $uz->ZapiszDane()
- to możesz uzyskać serializując -> przekazując zmienną w sesji -> odserializując (dziwne słowo) obiekt. Nie jestem specem od wzorców projektowych, ale wydaje mi się, że singleton zapobiega tworzeniu dwóch instancji danego obiektu w jednym skrypcie. Po zamknięciu tego skryptu dane są usuwane, więc po wywołaniu następnego skryptu ponownie zostanie utworzony singleton - jeśli się mylę proszę o sprostowanie. Ja w każdym razie używam serializacji i nie narzekam.
Go to the top of the page
+Quote Post
a79rtur
post
Post #3





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

Ostrzeżenie: (0%)
-----


a jak myslicie czy oplaca sie to serializowac i przekazywac czy lepiej przy kazdym przeladowaniu tworzyc od nowa obiekt w oparciu i id uzytkownika ktore by bylo w sesji ? w obiekcie tym sa dane uzytkownika pobrane z bazy i pare metod do wyswietlania/operacji na nim. i kiedy i gdzie to najlepiej serializowac zeby bylo wiadomo ze sie dane zachowaja zawsze.

ja zrobilem tak ze przy logowaniu jest :
Kod
$user=new Uzytkownik($_SESSION['user_id']);
$_SESSION['User']=serialize($user);


zawsze na poczatku strony po zaladowaniu konfigu, stałych, klas etc jest:
Kod
if(isset($_SESSION['User'])) $user=unserialize($_SESSION['User']);


a w destruktorze klasy jest:
Kod
function __destruct() {
      $_SESSION['User']=serialize($this);
}


co myslicie o takim rozwiazaniu ?

Ten post edytował a79rtur 2.05.2006, 13:54:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 17:47