Wpis z mikrobloga

Witajcie mirki.
1. Mam projekt na #symfony2 i muszę zrobić koszyk. W jaki sposób zrobić to najlepiej? Aktualnie zamierzam zrobić tak, że będę przechowywał w bazie danych: użytkownik -> produkt.
2. Nie mam w pracy team leadera i muszę sobie radzić sam, więc może podpowiecie mi gdzie najlepiej upchnąć logikę koszyka (dodawanie, usuwanie, edycja produktów w koszyku)? Przy poprzednim projekcie logikę pakowałem do serwisów, ale jako że słabo znam strukturę frameworka, może jest bardziej odpowiednie miejsce na to.
3. Wiem, że istnieje SyliusCartBundle, ale za cholerę nie potrafię tego skonfigurować, stąd mój wybór by stworzyć koszyk własnoręcznie od zera.

#webdev #php #symfony
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek:
1. Definitywnie tak. W bazie danych :)
2. Tworząc entity i repo i usuwać entity z tabeli koszyka?
3. Co uważasz za szybsze :)

#protip
Jeśli nie znasz Symfony, lub znasz w 20% to nie rób projektów komercyjnych, lecz ucz się a później za to bierz kasę. Bo to niszczy naszą branżę i opinię.
  • Odpowiedz
@anonim1133: Nie twierdzę, że chcę. Po prostu nie wiem czy to odpowiednie miejsce.
Sprawdzałem gdzie jest logika koszyka, to włożona jest do folderu Model. W SyliusCartBundle też jest to w folderze Model. Dlatego zacząłem mieć wątpliwości, że może o czymś nie wiem i takie rzeczy jak logika koszyka muszę trzymać w innym miejscu.
No a na mirko pewnie jest wielu dobrych webdevów, którzy mogliby mi wskazać jakie rozwiązanie jest najlepsze.
  • Odpowiedz
Siła Sf2 drzemie w DependencyInjection. Całą logikę jaką masz powinieneś upychać do możliwie małych serwisów, do których wstrzykujesz zależności. Pamiętaj, aby pracować z wykorzsytaniem podejścia "Interface First", co pozwoli ci w razie potrzeby w banalny sposób podmienić implementację poszczególnych procesów.

Osobiście oparł bym koszyk na bazie Redisa, ze względu na bardzo szybki czas operacji. Koszyk to nie jest nic trwałego, tworzenie specjalnej tabeli wiązącej użytkownika z produktem nie jest przekonujące. Dodatkowo powinieneś
  • Odpowiedz
istnieje SyliusCartBundle, ale za cholerę nie potrafię tego skonfigurować, stąd mój wybór by stworzyć koszyk własnoręcznie od zera.


@mariecziek: Jeśli nie potrafisz skonfigurować bundle'a, to skąd przekonanie, że napiszesz to lepiej niż twórcy bundle'a?

Takie podejście kończy się wymyślaniem koła na nowo, powtarzaniem błędów przeszłości (Ci od bundle'a zapewne mieli różne problemy po drodze i je rozwiązali – a Ty sam na nie prawdopodobnie trafisz w swoim kodzie), stratą czasu (bo w
  • Odpowiedz
@MacDada: nie zgodzę się z tym że jak nie potrafi skonfigurować bundla to nie napisze tego sam. Obstawiam (bo nie widziałem tego bundla) że jest tam pierdyliard niepotrzebnych mu rzeczy a napisanie takiego podstawowego koszyka nie trwa długo
  • Odpowiedz
@Klopsztanga: Ja chcę się rozwijać i tworzyć kod. Zmieniłem pracę z dwóch powodów:
1. kisiłem się na starej technologii: Yii1.13 i czysty PHP.
2. Zostałem bez team leadera, a jako osoba z niewielkim doświadczeniem (2 lata, czego z sf2 pracuję dopiero od ~3 miesięcy), szybciej rozwijałbym się pod okiem doświadczonej osoby.
W moim teraźniejszym miejscu pracy nie ma team leadera, nie ma code review, nie ma nic. Dlatego popracuję do urlopu i zmieniam
  • Odpowiedz
@mariecziek: w zasadzie to logikę biznesową powinno się trzymać w modelach a logikę aplikacji w kontrolerach(tj pobranie requestu, filtracja danych, rendering i te sprawy), znaczy ja w restowym api dla każdej akcji mam oddzielną metodę w serwisie
  • Odpowiedz