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.yml nadal 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 ObjectModel dla 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

  1. Testuj na PHP 8.1+ – usun kod kompatybilnosci z PHP 7.x
  2. Sprawdz serwisy Symfony – upewnij sie, ze definicje serwisow sa kompatybilne z Symfony 6.4
  3. Przejrzyj handlery CQRS – zmien dostep do glownych encji na repozytoria Doctrine
  4. Zaktualizuj kontrolery admin – jesli uzywasz kontrolerow Symfony, migruj adnotacje na atrybuty
  5. Testuj operacje bazodanowe – sprawdz, czy bezposredni SQL na glownych tabelach dziala poprawnie obok ORM
  6. 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.

Udostępnij wpis:
David Miller

David Miller

Ponad dekada praktycznego doświadczenia z PrestaShop. David tworzy wydajne moduły e-commerce skupione na SEO, optymalizacji zamówień i zarządzaniu sklepem. Pasjonat czystego kodu i mierzalnych...

Komentarze (8)

T
Thomas Mueller 2026-02-14
We just finished migrating our checkout module to PS9. The process was smoother than expected - most hooks work identically. The main pain point was updating our admin controllers from annotations to attributes.
Odpowiedz
E
Elena Rodriguez 2026-02-14
Does anyone know if the hook system changes affect actionProductUpdate? We rely heavily on that hook for our inventory sync module.
Odpowiedz
D
David Miller 2026-02-14
Elena, actionProductUpdate works the same way in PS9. The hook system is fully backwards-compatible. Your inventory sync module should be fine without changes.
J
Jakub Kowalski 2026-02-14
The migration checklist is super helpful. One thing I would add: test your cron jobs and CLI commands too. We found that some of our module console commands broke because of the Symfony 6.4 DI container changes.
Odpowiedz
S
Sophie Laurent 2026-02-14
Great point about CLI commands Jakub! We had a similar issue with our import cron. The fix was updating the service injection in our console command class.
S
Sophie Laurent 2026-02-14
Finally someone explains the API Platform integration clearly. We have been struggling with the old webservice for years. The OAuth2 scoped tokens alone make the upgrade worth it.
Odpowiedz
M
Marcus Weber 2026-02-14
Great overview of the PS9 changes! The Doctrine ORM migration is definitely the biggest challenge for us. We have about 15 modules that use ObjectModel extensively. Any tips on a gradual migration path?
Odpowiedz
D
David Miller 2026-02-14
Thanks Marcus! For a gradual migration, I recommend starting with read-only Doctrine queries alongside your existing ObjectModel code. That way you can test without risk. Replace ObjectModel writes only after thorough testing.

Zostaw komentarz

Ładowanie...
Powrót do góry