Przejdź do głównej zawartości

Wprowadzenie

P2Lab Cache to plugin do Shopware 6, który zapisuje kompletne odpowiedzi HTML dla cache’owalnych tras storefrontu i serwuje je przy kolejnych żądaniach. Zamiast przebudowywać stronę główną, stronę produktu czy listing kategorii dla każdego odwiedzającego, Twój sklep zwraca gotową odpowiedź w milisekundach — odciążając serwer i poprawiając percepcję szybkości strony.

Plugin jest sprzedawany w sklepie Shopware jako Speed Boost, ale wewnętrznie identyfikowany jest nazwą techniczną P2LabCache.

  • Cache pełnych stron — przechwytuje i serwuje output HTML Shopware dla home, nawigacji, produktów, CMS i async buybox
  • Inteligentna inwalidacja na poziomie pól — gdy produkt lub kategoria się zmienia, czyszczone są tylko wpisy cache, które zależały od zmienionego pola
  • Trzy backendy storage — Filesystem (domyślny), Redis (klastrowy), APCu (in-memory)
  • Wewnętrzna kompresja — opcjonalny gzip zapisanych payloadów oszczędza dysk lub pamięć
  • Integracja z reverse proxy — purge Varnisha przez xkey z trzema strategiami (Default / Precise / Smart), blocklistą tagów, splitowaniem i skracaniem
  • Cache warming — nagrzewanie sterowane kolejką, które wcześniej wypełnia wszystkie cache’owalne URL-e po deployach lub pełnym czyszczeniu
  • Moduł admin — dashboard ze statystykami, szybkie czyszczenie, wykresy per typ, log inwalidacji, log reverse proxy i historia warmupów
  • REST API + CLI — automatyzacja czyszczenia i nagrzewania ze skryptów deploya

Każda zapisana strona śledzi swój oryginalny rozmiar, rozmiar po kompresji, czas generowania i czas obsługi cache HIT, więc dashboard pokazuje prawdziwe liczby — całkowita oszczędność miejsca, średnia szybkość HIT itd.

  • Właściciele sklepów prowadzący średnie i duże katalogi Shopware 6, którzy odczuwają opóźnienie generowania stron przy skokach ruchu
  • Zespoły DevOps uruchamiające Shopware za Varnishem, którzy chcą purgów na poziomie pól zamiast szerokiej inwalidacji
  • Agencje standaryzujące konfigurację cache na wielu sklepach
  • Shopware 6.6 (composer.json pluginu wymusza shopware/core na >=6.6 <6.7; wersja dla 6.7 jest dystrybuowana osobno)
  • Działający worker async (bin/console messenger:consume async) — wymagany do nagrzewania cache i kilku ścieżek inwalidacji
  • W zależności od wybranego backendu:
    • Filesystem — miejsce na dysku pod var/cache/ (lub gdziekolwiek jest Twój Symfony cache dir)
    • Redis — działający Redis i DSN typu redis://host:6379
    • APCu — rozszerzenie PHP apcu zainstalowane i włączone (tylko single-server)
  • (Opcjonalnie) Varnish z załadowanym vmodem xkey, jeśli chcesz purgów przez reverse proxy

Shopware 6 ma wbudowany Symfony HttpCache, który już zapisuje odpowiedzi i inwaliduje je po tagach. P2Lab Cache zastępuje domyślny cache store własną implementacją i dodaje:

  • Tryb Smart inwalidacji, który sprawdza, które pola encji faktycznie się zmieniły i mapuje je do minimalnego zbioru tagów
  • Kompresję zapisanego payloadu (Shopware zapisuje raw)
  • Statystyki per typ cache — count, rozmiar, oszczędność miejsca, średni czas HIT vs MISS
  • Czyszczenie per typ (clear all product pages, all listings, all CMS, …) zamiast wszystko-albo-nic
  • Cache warming sterowany kolejką
  • Warstwę purge Varnisha ze świadomym pól generowaniem tagów, blocklistą i splittowaniem nagłówków

Jeśli już używasz Varnisha lub CDN, zostają — P2Lab Cache leży na wierzchu.