Nasz stack technologiczny dla modułów PrestaShop
Poznaj ekosystem wspoldzielonych pakietow stojacych za modulami mypresta.rocks. 12 autorskich bibliotek, spojny interfejs admina i kompatybilnosc z wieloma.
Stack stojacy za 151 modułami
Każdy moduł, który dostarczamy, działa na wspólnej bazie okolo 38 wewnętrznych pakietów Composer. To nie sa cienkie wrappery -- to biblioteki, które budujemy i utrzymujemy od ~2015, żeby rozwiązywać problemy powtarzajace się w tworzeniu modułów PrestaShop: panele administracyjne, wybór encji, kompatybilność między wersjami, zarzadzanie URL-ami, śledzenie sesji, harmonogramy.
Gdy instalujesz jeden z naszych modułów, dostajesz lata skumulowanej pracy inżynierskiej. Błąd naprawiony w jednym pakiecie trafia do każdego modułu, który go używa, przy następnej aktualizacji.
Infrastruktura deweloperska
Wszystko stoi na serwerze TrueNAS (Debian 12, 64GB RAM) z ponad 25 kontenerami Docker -- sklepy produkcyjne, środowiska stagingowe, generatory demo, narzedzia deweloperskie. Stack: PHP 8.4, Node.js 20, Composer 2.8, Redis do współdzielonego cache'owania, Claude Code i Codex do wspomaganego AI developmentu, VS Code jako edytor.
Każdy moduł przechodzi testy na PrestaShop od 1.7.6 do 9.1, wielu wersjach PHP i różnych konfiguracjach serwerowych przed wydaniem. Jeden ZIP obejmuje wszystkie obsługiwane wersje -- bez oddzielnych buildów na wersje PS.
Współdzielone pakiety
prestashop-admin
Fundament każdego panelu administracyjnego modułu. Dostarcza bazowe kontrolery (MPRAdminController, MPRListController) z wbudowanym AJAX-owym uploadem obrazów, edycja inline i modalami pól. Filtrowanie oparte na bazie danych z szescioma typami filtrów. Zarzadzanie kolumnami z persystencja per pracownik. Ponad 20 komponentów JavaScript (datepickery, modale, toasty, edytory inline, listy AJAX) i ponad 35 stylów komponentów SCSS.
Dlatego każdy panel administracyjny mypresta.rocks wygląda i działa tak samo. To nie style guide -- to współdzielony kod z ponad dekada iteracji.
prestashop-entity-selector
Uniwersalny widget do wybierania encji PrestaShop z logika właczania/wyłaczania. 18 typów encji, ponad 130 metod wyboru, grupowanie boole'owskie z AND/OR i podglad na żywo. Zamiast tego, żeby każdy moduł na nowo wymyślał wybór produktów z prostym autocomplete, wszystkie współdziela jeden przetestowany komponent.
"Wszystkie produkty w kategorii X, oprócz tych od producenta Y, chyba że sa w promocji" -- to jedna konfiguracja entity selectora.
prestashop-compat
PrestaShop zmienia się znacząco między wersjami. Sygnatury kontrolerów, ścieżki szablonów, formaty odpowiedzi AJAX, nazwy hooków -- wszystko różne między 1.7 a 8.x i 9.x. Ten pakiet absorbuje te różnice. Moduły piszą przeciwko stabilnemu API, a warstwa kompatybilności obsługuje zachowanie specyficzne dla wersji pod spodem. Tak wspieramy PS od 1.7.6 do 9.1 z jednej bazy kodu, bez zaśmiecania kodu sprawdzeniami wersji.
Przykład: Tools::displayPrice() zostało usunięte w PS 9.0. Nasz wrapper PriceFormatter::format() wykrywa wersje i wywołuje odpowiednia metode.
prestashop-integrity
Zarzadzanie schematem bazy danych i samonaprawa. Gdy struktura tabel modułu odbiega od oczekiwanej (brakujace kolumny, złe typy, brakujace indeksy), pakiet integrity wykrywa to i naprawia automatycznie. Obsługuje ratowanie zakładek i aktualizacje jednym kliknięciem we wszystkich 151 modułach.
prestashop-license
Weryfikacja licencji, która przesyła tylko domenę, wersję modułu i klucz licencyjny. Nic więcej. Żadnych danych klientów, żadnych analityk sklepu, żadnego trackingu.
prestashop-search
Współdzielony silnik wyszukiwania z tokenizacja, obsługa wymiarów i synchronizacja. Używany przez moduły potrzebujace wyszukiwania pełnotekstowego po encjach PrestaShop -- produkty, strony CMS, posty blogowe.
prestashop-url
Zarzadzanie URL-ami z generowaniem opartym na wzorcach, integracja z cyklem życia encji i wymiennymi backendami przechowywania. Gdy produkt jest tworzony lub aktualizowany, URL-e regeneruja się automatycznie. Napędza SEO Revolution i Friendly URL.
prestashop-icons
Mapowanie ikon z uwzględnieniem motywu. Hummingbird używa Material Icons, Classic używa Font Awesome, motywy firm trzecich -- czegoś zupełnie innego. Ten pakiet mapuje nazwy semantyczne ("cart", "edit", "delete") na zestaw ikon aktywnego motywu. Zawiera też 38 ikon marek płatniczych i 12 ikon mediów społecznościowych jako sprite'y SVG.
prestashop-session
Współdzielone śledzenie sesji między modułami przez jedna tabelę mpr_sessions. Wykrywanie botów, fingerprinting urządzeń, spójna identyfikacja sesji. Security Revolution i Checkout Revolution współdziela dane sesji zamiast tego, żeby każdy z nich śledził niezależnie.
prestashop-schedule i prestashop-public-holidays
Logika czasowa: zakresy dat, cotygodniowe powtarzajace się harmonogramy, obsługa stref czasowych i scentralizowana baza świat publicznych. "Zastosuj tę zniżkę w dni robocze oprócz świat" -- to jedna konfiguracja w Sales Revolution.
template-injector
Niektóre moduły musza umieszczać treść tam, gdzie PrestaShop nie zapewnia hooków. Ten pakiet skanuje pliki Smarty .tpl, znajduje punkty wstrzykiwania i wstawia output modułu. Obsługuje motywy potomne, nadpisania szablonów, fallbacki motywu nadrzednego. Śledzi co zostało wstrzyknięte gdzie, żeby móc się czysto usunąć przy deinstalacji.
I reszta
prestashop-front (frontendowe komponenty UI), prestashop-target-conditions (reguły warunkowego wyświetlania wg grupy klientów, kraju, urządzenia, wartości koszyka), prestashop-crawler (współdzielony silnik curl_multi do health checków i skanowania URL-i) i inne. Okolo 38 pakietów, każdy z własnym wersjonowaniem i constraintami Composera.
Dlaczego to jest ważne dla Ciebie
Spójność: Każdy panel administracyjny działa tak samo. Te same filtry, to samo zarzadzanie kolumnami, te same skróty klawiaturowe. Naucz się jednego modułu -- znasz je wszystkie.
Niezawodność: Błąd naprawiony w prestashop-admin jest naprawiony w każdym module przy następnej aktualizacji. Poprawki bezpieczeństwa propaguja się wszędzie.
Wsparcie wielu wersji: Warstwa kompatybilności sprawia, że możesz aktualizować PrestaShop bez obaw o nasze moduły.
Zero konfliktów: Moduły współdzielace tabele bazy danych (ps_mpr_config, mpr_sessions, mpr_public_holidays) sa zaprojektowane do współistnienia. Zainstaluj pięć naszych modułów -- koordynuja się przez współdzielona infrastrukturę.
Architektura
Wszystkie współdzielone pakiety używaja przestrzeni nazw PHP MyPrestaRocks z autoloadingiem PSR-4. Sa synchronizowane przez skrypty deploymentu jako prawidłowe zależności Composera -- każdy z ograniczeniami wersji, każdy utrzymywany jako osobna biblioteka. Gdy zaglądasz do katalogu vendor/myprestarocks/ modułu, widzisz prawdziwy, utrzymywany kod.
Zobacz to w akcji
Najlepszym sposobem na zrozumienie, co te pakiety robia, jest wypróbowanie modułu. Każdy moduł w katalogu oferuje darmowe demo -- zainstaluj go, otwórz panel administracyjny i zobacz współdzielona infrastrukturę w akcji.
Pytania o architekturę albo zainteresowanie niestandardowym developmentem? Odezwij się.