Piszę aktualnie obsługę koszyka sklepu internetowego. Zrobiłem klasę "cart" i tam trzymam wszystkie operacje na koszyku. Każda sesja wiąże się u mnie z utworzeniem pliku w katalogu tmp o nazwie takiej samej jak nazwa sesji. Mniejsza o to, czy to rozsądne i optymalne rozwiązanie :-)
Wszystko zapisuje się fajnie, mogę dodawać kolejne produkty do koszyka i moja łamigłówka zaczyna się przy kończeniu pracy z sesją, gdy użytkownik opuszcza mój sklep i przez te 1440 sekund nie pobiera nic z IP mojego serwera. Dowiedziałem się, że jak ktoś znowu odpali session_start() to jest szansa na odpalenie garbage collectora, który usuwa wszystkie nieaktywne sesje.
Chciałbym, żeby przy tym usunął on też plik (z zawartością koszyka) o takiej też samej nazwie jaka była sesja. Proste unlink() dorzucić.
Wyczytałem istnienie takiej funkcji jak session_set_save_handler gdzie mogę wrzucić swój automat gc ale to chyba zbyt duże narzędzie jak dla mnie :-) Tzn na podstawie manuala wnioskuję, że wcześniejsze 5 z 6 funkcji przekazywanych tą metodą nie są domniemane i nie mogę ich pominąć (wyprzecinkować) dodając jedynie swój gc callback.
Moje pytanie zatem brzmi: czy można jakoś prościej "powiedzieć" systemowi gc co mógłby jeszcze dla mnie zrobić usuwając nieaktywne sesje?