Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Własny mechanizm sesjowy czy php
Forum PHP.pl > Forum > PHP
vadergb
Witam,

Mam pewien dylemat co wybrac: wlasny mechanizm sesjowy czy ten co dostarcza php.

Sesje maja mi pomoc tylko w logowaniu (ciasteczka w autologowaniu) + ew. ustawienie jakieis kategorii.

W sesji bedzie zapisywany: user_id, status uzytkownika(nieaktywny,aktywny,vip) - jest sens cos wiecej zapisywac np. nick, login etc.?

Ciasteczka natomiast w autologowaniu oraz w ustawieniu jezyka strony.

Liczbe osob online - bede zapisywal w bazie na zasadzie ip.

Nie wiem czy jest jakikolwiek sens tworzenia wlasnego mechanizmu - z tego co wiem raczej nie jest wydajeniejszy. Nie bede dodawal ze $_SESSION[user_id]
moge wywolac w kazdej klasie(wszedzie) gdzie mi sie podoba - nie musze nic przekazywac.

Chcialbym poznac opinie kogos z wiekszym doswiadczeniem. Bo ja nie widze zadnych udogodniej, ktore daje wlasny mechanizm.

pozdrawiam

UPDATE
Hmmm tak siedze i mysle - moze by polaczyc sesje z php z wlasnym mechanizmem: np. dane zapisywac w $_SESSION i w bazie danych(zeby wiedziec kto kiedy wszedl, ile osob online itp.)? - jednak przez to dochodza 1-3 zapytania.
marcio
Cytat
Mam pewien dylemat co wybrac: wlasny mechanizm sesjowy czy ten co dostarcza php.


Raczje wlasny system sesji z php wystarcza smile.gif

Fifi209
Co do "dostępności", wiesz co to metody i zmienne statyczne...?

Jeżeli uważasz, że jesteś dobry w te klocki (OOP) to proponuję napisać własny, jeżeli nie to nawet o tym nie myśl.

Co do wydajności, fraza dla google: cache
viking
Możesz napisać własny korzystający z _SESSION. Poczytaj o session_set_save_handler czy jakoś tak. Albo np. gotowa klasa Zend_Session. Daje to większe możliwości, możesz kontrolować nagłówki (setcookie można sobie wsadzić w wiadome miejsce), trzymać w bazie itd.
Cysiaczek
OOP jak diabli :/
Przenoszę na PHP
lars_91
Kiedyś sam napisałem własny mechanizm sesji oparty nie korzystający z $_SESSION. Muszę przyznać, że to raczej bez sensu, gdyż otrzymujemy niemal identyczną funkcjonalność. Nie ma sensu na nowo odkrywać koła.
vadergb
Dotychczas piszac skrypty np. chcac przekazac dostepne rzeczy z klasy obslugi bazy danych robilem to na zasadzie przekazania jej do nastepnej.

cos typu:
$klasa = news baza();
$klasa2 = news baza($klasa);

Czy jest mozliwosc zrobienia klasy publicznej nie uzywajac singletona?

Przy wiekszej ilosci klas do przekazania robi sie balagan:

np. trzeba przekazac klasy: obsluga bazy danych, obsluga $_POST (itp.), Klasa obslugujaca Sesje, Klasa ACL - i jeszcze kilka by sie znalazlo...
Te klasy powinny byc tak na dobra sprawe dostepne prawie wszedzie w kazdej innej klasi - Czy jest jakis inny sposob na przekazanie jej do innej klasy innym sposobem niz singleton?

sognat
Trochę nam się rozszerza zakres omawianego tematu w tym wątku. winksmiley.jpg

Dependency Injection (wstrzykiwanie zależności do klas, czyli tak jak to robisz; po więcej odsyłam do Google) z założenia jest bardzo dobre. Jeżeli natomiast Twoja klasa potrzebuje używać wielu innych modułów/bibliotek to najprawdopodobniej jest to błąd projektowy

To co Ci może pomóc to Dependency Injection Container albo Service Locator... ale nie przypuszczam, aby Ci to było potrzebne w tym momencie. winksmiley.jpg
korro
Cytat(vadergb @ 17.08.2009, 13:10:40 ) *
$klasa = news baza();
$klasa2 = news baza($klasa);

news?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.