stirith
6.09.2009, 14:27:35
Uczę się symfony i postanowiłem się trochę pobawić przy skrypcie sklepu internetowego. Natknąłem się na problem z "koszykiem". Nie wiem dokładnie jak się za to zabrać. Czy do przechowywania informacji o dodanych produktach użyć sesji ? Czy wstawiać te info do bazy ?
Jak to rozwiązać ?
Crozin
6.09.2009, 14:33:05
Jest przynajmniej jeden plugin koszyka dla sklepu - zobacz jak tam to zostało rozwiązane - jakich narzędzi użyto.
stirith
6.09.2009, 17:43:38
Znalazłem

Przeanalizowałem kod i mniej więcej wiem jak to zrobić, teraz moje pytanie brzmi: Tam to jest w formie biblioteki...gdzie ja w swojej aplikacji mam napisać metody (dodające do koszyka, usuwające...) Mam zrobić moduł "koszyk" a w actions punkcje add, remove etc ?
Crozin
6.09.2009, 18:48:34
Nie korzystałem z tego nigdy (tylko skojarzyłem, że takie coś w ogóle istnieje) ale jeżeli jest to standardowy plugin to znajduje się tam foldery odwzorowujące strukturę projektu. Generalnie symfony jest elastyczne pod względem lokalizacji klas. Przykładowo formularz może być w /lib/form, /apps/.../lib/form, apps/.../modules/.../lib/form, /plugins/.../lib/form. W modułach pluginu. Prawdę mówiąc to może być właściwie wszędzie (zależy to właściwie jedynie od ostawień Autoloadera).
Klasy przechowuj w miejscach o jak najbardziej "precyzyjnym położeniu", tj. jeżeli masz jakiś formularz z walidatorem, który jest specyficzny wyłącznie dla modułu ABC to umieść źródła w /apps/.../module/lib/form (oraz .../validator).
Co do metod dodających/usuwających z koszyka to ich miejsce jest w modelu.
krowal
6.09.2009, 19:52:06
Tak jak Crozin powiedział, ich miejsce jest w modelu, dodatkowo do każdej czynności tj. usuwanie, dodawanie produktu do koszyka powinieneś sobie napisać oddzielną akcję która wywoła odpowiednią metodę z tego modelu koszyka. Akcje mogą być bez widoku i po wykonaniu kierować użytkownika z powrotem do punktu z którego użytkownik ją wywołał, lub też wywoływać je via AJAX.
Gribo
7.09.2009, 20:54:56
sam ostatnio implementowałem coś podobnego do koszyka mianowicie schowek na linki. W symfony to jest jakies 20 lini kodu i wszytsko jest gotowe z wykorzystaniem ajaxa. Bardzo pomocny jest tutorial na stronie projektu Symfony mianowicie
http://www.symfony-project.org/book/1_2/11-Ajax-Integration
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.