PrestaShop 9 to najwiekszy skok architektoniczny od serii 1.7. Pod maska platforma przeszla na Symfony 6.4 LTS, zastapila wzorce Legacy ObjectModel przez Doctrine ORM dla glownych encji i wprowadzila wlasciwe REST API oparte na API Platform. Jesli utrzymujesz moduly, te zmiany maja znaczenie – a wczesne przygotowanie oszczedzi Ci pozniejszego stresu.
Przejscie na Symfony 6.4
PrestaShop 9 jest dostarczany z Symfony 6.4, co oznacza kilka rzeczy dla deweloperow modulow:
- Definicje serwisow musza uzywac nowych konwencji autowiringu – stare podejscie
services.ymlnadal dziala, ale jest przestarzale - Adnotacje kontrolerow sa zastapione atrybutami PHP 8 –
#[Route]zamiast@Route - Event subscribery uzywaja atrybutu
#[AsEventListener]do automatycznej rejestracji - Minimalne wymaganie PHP to teraz 8.1, z zaleceniem 8.2+
Dobra wiadomosc: wiekszosc hookow i sam system modulow pozostaja wstecznie kompatybilne. Twoj hookDisplayHeader() nadal dziala. Ale jesli Twoj modul rejestruje serwisy Symfony, kontrolery admin lub komendy CQRS – sprawdz je dokladnie.
Doctrine ORM zastepuje ObjectModel dla rdzenia
To zmiana, ktora zaskakuje wiekszosci deweloperow. Glowne encje jak Product, Category i Customer sa teraz zarzadzane przez Doctrine. Co to oznacza w praktyce:
- Bezposrednie zapytania SQL do glownych tabel nadal dzialaja, ale warstwa ORM moze nie widziec Twoich zmian natychmiast
- Podejscie
Db::getInstance()nadal dziala dla wlasnych tabel modulu - Jesli uzywasz handlerow CQRS interagujacych z glownymi encjami, przejdz na wzorzec Doctrine Repository
- Legacy podklasy
ObjectModeldla glownych encji sa oznaczone jako przestarzale
API Platform: wreszcie prawdziwy REST
PrestaShop 9 udostepnia wlasciwe REST API zbudowane na API Platform. Zastepuje to starzejacy sie webservice obecny od PrestaShop 1.5. Kluczowe ulepszenia:
- Odpowiedzi zgodne z JSON:API z prawidlowa paginacja i filtrowaniem
- Uwierzytelnianie OAuth 2.0 z tokenami dostepu o ograniczonym zakresie
- Dokumentacja OpenAPI generowana automatycznie z metadanych encji
- Niestandardowe zasoby API moga byc dodawane przez moduly za pomoca standardowych adnotacji API Platform
Checklista migracji dla deweloperow modulow
- Testuj na PHP 8.1+ – usun kod kompatybilnosci z PHP 7.x
- Sprawdz serwisy Symfony – upewnij sie, ze definicje serwisow sa kompatybilne z Symfony 6.4
- Przejrzyj handlery CQRS – zmien dostep do glownych encji na repozytoria Doctrine
- Zaktualizuj kontrolery admin – jesli uzywasz kontrolerow Symfony, migruj adnotacje na atrybuty
- Testuj operacje bazodanowe – sprawdz, czy bezposredni SQL na glownych tabelach dziala poprawnie obok ORM
- Dodaj
ps_versions_compliancy– ustaw wersje min/max w deskryptorze modulu, aby wskazac wsparcie PS9
Co pozostaje bez zmian
Nie wszystko sie zmienia. System hookow, szablony Smarty dla front-office, format deskryptora modulu i ogolna struktura katalogow pozostaja spojne. Obietnica wstecznej kompatybilnosci PrestaShop oznacza, ze wiekszosc dobrze napisanych modulow bedzie dzialac z minimalnymi poprawkami.
Najwazniejszy wniosek: testuj wczesnie, aktualizuj definicje serwisow i korzystaj z Doctrine tam, gdzie to ma sens. PrestaShop 9 to lepsza podstawa na przyszlosc – a moduly, ktore przyjma nowe wzorce, beda latwiejsze w utrzymaniu.
Komentarze (8)
Zostaw komentarz