PHP: klasa dla sesji?

tworze mały serwis i staram się to robić wg najnowszych standardów, tz. wszędzie używać klas

i tu moje pytanie: czy jest sens tworzyć klasę do obsługi sesji czy robić to tradycyjnie?

a jeżeli warto, to czy możecie wskazać jakieś przykłady klasy dla sesji?

2 lata, 2 miesiące temu | edytowane przez: Bilberry 4462524

  • Możesz używać tradycyjnych sesji tylko "zamknąć" je w obiekcie. Dopisać setery i getery, a także wzbogacić sesje o dodatkowe mechanizmy np. metode get_once, która pobierze wartość z sesji i natychmiast ją usunie. To właśnie możliwość wzbogacania o dodatkowe funkcjonalności przemawia przede wszystkim za tym aby tworzyć klasę do obsługi sesji.

    Takie wrappery ma większość dostępnych frameworków dla PHP jak Kohana PHP czy Symfony. Przykładem jest np. Zend_Session. Oczywiście oprócz zwykłego opakowania można zaimplementować własny system sesji np. oparty o bazę danych. Wszystko zależy od potrzeb.

  • Najlepiej jeżeli połączysz klasyczną sesje PHP wraz z dowolną bazą danych.

    Na przykład generujesz unikalne id sesji które jest zapisywane w tablicy SESSION i dodatkowo w bazie danych.

    Jeżeli sprytnie wszystko zaprojektujesz aplikacja stanie się bezpieczniejsza i odporna na ataki typu session poisonic

    Oczywiście polecam całość zapakować w jakąś klasę.

    Przy okazji tworzenia serwisów w PHP polecam model MVC

  • Jeżeli robisz coś obiektowo, to trzymaj się tego paradygmatu i używaj klas. Choć PHP swoim API sugeruje, żeby tego nie robić, dobrze jest oprzeć się pokusie i zaprojektować coś poprawnie.

    Co do przykładów - Google twoim przyjacielem: PHP Session Management & Password Protect class.

  • Warto jeszcze napisać nieco więcej o wspomnianym Zend_Session. Dzięki temu, że sesja zapakowana jest w obiekt udało się zrobić coś takiego jak namespace'y. Bardzo ułatwia to prace i pomaga uporządkować dane przechowywane w sesji. Niby takie proste coś a naprawdę cieszy ;-)

Zaloguj się, aby dodać swoją odpowiedź