Tak w zasadzie, to nie do końca wiem jak odpowiedzieć. Ciężko ogólnie powiedzieć jak dokładnie zabrać się za taki projekt, bo sklep to pod spodem może być masa różnych funkcjonalności i nie wiem z którą masz problem w jakim konkretnie miejscu, a z którą nie.
Jeśli chodzi konkretnie o mechanizm sesji, nie wydaje mi się, aby cokolwiek było usunięte, może najwyżej gdzieś nieco zmienione. W przypadku zalinkowanego poradnika w 5 części autor pokazuje coś na temat sesji, podobny kod widzę u Ciebie, który fragment masz więc na myśli? Tam w klasie CartSessionStorage wstrzykiwana przez konstruktor jako zależność jest klasa RequestStack dostarczona przez Symfony, wg dokumentacji dla wersji 7 dokładnie taka klasa nadal istnieje, pokazane jest to już na początku tematu o sesjach:
https://symfony.com/doc/current/session.html#basic-usage Następnie na requestStack wywoływana jest metoda getSession(), a na tym obiekcie później metody get() i set() co również pokrywa się z tym co ja pamiętam oraz z dokumentacją. Z czym więc konkretnie masz tu problem? Jest jakiś błąd, coś konkretnego nie działa?
Jeśli chodzi o Dockera, to masz dwa pliki - docker-compose.yaml i compose.yaml, gdzie obydwa dodają bazę danych, tyle że każdy zupełnie inną, raz Postgresa a raz MySQL. Plik konfiguracji .env z kolei wskazuje na jeszcze inną używaną bazę, MariaDB. Dalej masz też dwie migracje, gdzie składnia sugeruje, że jedna jest zrobiona pod MySQL/Maria, a druga raczej pod Postgresa. Wygląda to więc na spory bałagan.
Dalej odnośnie Dockera, masz tu kontener dla bazy danych, a gdzie kontener w którym uruchomi się PHP? Z tego co zerknąłem, to autor zalinkowanego poradnika też go nie ma. Nie wiem czy można nazwać to błędem, ale wg mnie jak już chcemy fajnie i łatwo przenosić czy niezależnie konfigurować aplikację na Dockerze to, jeśli to możliwe, powinien być komplet usług do uruchomienia, a nie tak, że część stawiamy z Dockera, a część trzeba i tak sobie doinstalować.
Przy okazji jeszcze katalogi var oraz vendor nie powinny być zacommitowane do repozytorium na Githubie. var to rzeczy, które aplikacja generuje sobie na danym środowisku (cache, logi i inne), a vendor to zewnętrzne biblioteki, które dzięki plikom composer.json/lock w każdej chwili da się odtworzyć przy użyciu Composera. Dodawanie ich do repozytorium w taki sposób powoduje tylko bałagan.