vadergb
17.08.2009, 00:21:17
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
17.08.2009, 00:27:04
Cytat
Mam pewien dylemat co wybrac: wlasny mechanizm sesjowy czy ten co dostarcza php.
Raczje wlasny system sesji z php wystarcza
Fifi209
17.08.2009, 00:35:27
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
17.08.2009, 05:32:12
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
17.08.2009, 07:20:43
OOP jak diabli :/
Przenoszę na PHP
lars_91
17.08.2009, 08:52:35
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
17.08.2009, 12:10:40
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
17.08.2009, 19:17:32
Trochę nam się rozszerza zakres omawianego tematu w tym wątku.

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.
korro
17.08.2009, 22:12:16
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.