![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 0 Dołączył: 3.06.2010 Ostrzeżenie: (50%) ![]() ![]() |
Mam takie pytanie.
Robie dla mojej strony index.php w którym są tworzone obiekty przez "new"
Wszystkie linki na stronie są kierowane na index.php?sub=N, czyli za każdym kliknieciem na stronie tworzą się przez new te same klasy. Czy tak ma być? Czy to jest źle? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No raczej prawidłowo... zarówno zmienne jak i klasy nie są przenoszonę pomiędzy requestami
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 0 Dołączył: 3.06.2010 Ostrzeżenie: (50%) ![]() ![]() |
Może ja to źle rozumiem, ale wypełniam zmienne klasy jakąś zawartością i chciałbym żeby ta zawartość nie znikała po każdym kliknięciu w link
Jak coś takiego zrobić. np klasa do logowania pamięta swoją zawarość a nie tworzy sie na nowo ciągle? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Sesje.
2. Jeżeli do sesji chcesz wrzucić obiekty, powinny one być utworzone z klasy implementującej interfejs Serializable. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 0 Dołączył: 3.06.2010 Ostrzeżenie: (50%) ![]() ![]() |
Czyli są tylko dwa wyjścia albo zastosować sesje,
albo za każdym przeładowaniem strony wypełniać klasy na nowo? Nie robi się tak że klasa jest łądowana tylko raz? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
PHP działa na zasadzie: żądanie HTTP z przeglądarki -> władowanie wszystkiego co potrzebne do jego przetworzenia -> zwrócenie odpowiedzi HTTP do przeglądarki -> zwolnienie wszystkich zasobów.
Wszystkich, w tym także sesji, dlatego są one zapisywane w jakiejś bazie danych, a obiekty przed zapisaniem muszą zostać zserializowane. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Się podepnę z pytaniem bo na temat.
Z ciekawości co będzie jak nie użyję serialize i zapiszę obiekt w sesji no i mam kod foo.php
index.php
footest.php
No i pomimo iż nie użyłem funkcji serialize/unserialize obiekt w sesji się znajduje z poprawnymi wartościami i działającymi metodami. -------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ PHP, a dokładniej domyślny mechanizm sesji, zawsze przed zapisem jej do pliku serializuje sobie tablicę $_SESSION. Także Ty sam nie musisz wrzucać do sesji zserializowanych danych, tylko upewnić się, że obiekty które do niej wrzucasz implementowały interfejs Serializable.
Sposób działania sesji, w uproszczeniu:
Ten post edytował Crozin 30.08.2012, 19:16:42 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Tyle, że w moim przykładzie nie użyłem interfejsu Serializable
-------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
W takim przypadku interpreter zserializuje każdą właściwość obiektu, nie pozostawiając Ci żadnej kontroli nad tym procesem. To z kolei może prowadzić do błędów, bądź niepożądanych efektów.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 01:45 |