![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
PS. Długi tekst ale w pełni opisuje mój problem.
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():
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. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 81 Pomógł: 4 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo rozumiem co chciałeś w swoim kodzie zrobić... Pozdrawiam. Ten post edytował pejott 23.11.2011, 02:03:32 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
A ja nie zabardzo rozumiem jak ma to działać. Mógłbyś wytłumaczyć?
EDIT: Wziąłem pod uwagę to, że moja sesja jest przechowywana w DB za pomocą PdoSessionStorage, więc przesłałem do mojej metody ta usługę, i na samym jej początku w konstruktorze uruchamiam sesję PdoSessionStorage->start(). Dzięki temu, błąd już nie występuje. Ale teraz pytanie, czy to dobre wyjście? Mimo, że wszystko działa tak jak trzeba, może to nie być dobre rozwiązanie i w przyszłości może przysporzyć dużo problemów. Ten post edytował adbacz 23.11.2011, 02:46:54 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 81 Pomógł: 4 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Przeczytałem drugi raz (po przeczytaniu pierwszy raz, uruchomiłem sesję na DB), ale nie wiem co mi to miało dać. Wybacz, ale rozmowa ze mną równoważnikami zdań lub czymś podobnym będzie się ciągła trochę, więc jeśli możesz to napisz konkretnie dlaczego podesłałeś linka i poleciłeś przeczytać jeszcze raz?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:40 |