Piszę sobie skrypt, który pełni rolę katalogu produktów. I chciałem, aby w zalezności od adresu URI wysyłana była ilość produktów z danej kategorii w schowku do layoutu. Wszystko musiało być powiązane ze sobą, i nie dziwię się, że nadszedł czas na błędy, ale z drugiej strony dziwię się, że mam problem z sesją.
Napisałem sobie koszyk który korzysta z sesji (zapisywana w DB) i jest funkcja, która uruchamiana jest za każdym razem działania skryptu, która biorąc pod uwagę URI, ustawia odpowiedni ID kategorii produktów, który później, przy renderowaniu widoku jest brany pod uwagę i wysyłane sa te produkty z sesji, własnie o tym ID do widoku.
Koszyk, klasa z tą metodą uruchamianą za każdym razem i kilka innych jeszcze klas, mam uruchamiane jako usługi. I teraz, do głównej metody uruchamianej za każdym razem przesyłam usługi: Koszyk, Autoryzację i EntityManager Doctrine a gdy uruchamiana jest usługa koszyka, do niej przesyłam usługi: NativeSessionStorage. Niestety, nie mogłem nigdzie znaleść oryginalnej nazwy tej usługi więc musiałem zrobić własną, i nazwałem ją: native.sess.stor.
No i teraz jak włączam skrypt, to wyskakuje mi notice:
Cytat
ErrorException: Notice: Undefined variable: _SESSION in C:\VertrigoServ\www\vendor\symfony\src\Symfony\Component\HttpFoundation\SessionStorage\NativeSessionStorage.php line 120
a linijka 120 z notice'a to instrukcja return i wskazanie na znienną w funkcji array_key_exists():
public function read($key, $default = null) { }
Dodam, że w config.yml, mam ustawione session.auto_start na true. Czym to może być spowodowane? Zastanawia mnie, czy jeślibym użył oryginalnej nazwy usługi NativeSessionStorage to by coś dało. Z drugiej też strony, zastanawiam sie czy używanie tej klasy jest odpowiednie. Może użyć klasy Session, i trzymać cały koszyk w attributes? Tutaj nie mam pewności, bo nie wiem do czego służy ta tablica.
Nie wklejałem setek linii kodu bo nie widziałem sensu. Jeśli będziecie potrzebowali coś to napiszcze, wkleję to co potrzeba.