PrestaShop 9 ist der groesste architektonische Sprung seit der 1.7-Serie. Unter der Haube wechselte die Plattform zu Symfony 6.4 LTS, ersetzte Legacy-ObjectModel-Muster durch Doctrine ORM fuer Core-Entitaeten und fuehrte eine richtige API Platform-basierte REST-API ein. Wenn Sie Module pflegen, sind diese Aenderungen relevant – und eine fruehzeitige Vorbereitung erspart Ihnen spaeter hektisches Nacharbeiten.

Der Wechsel zu Symfony 6.4

PrestaShop 9 wird mit Symfony 6.4 ausgeliefert, was fuer Modulentwickler mehrere Dinge bedeutet:

  • Service-Definitionen muessen die neuen Autowiring-Konventionen verwenden – der alte services.yml-Ansatz funktioniert noch, ist aber veraltet
  • Controller-Annotationen werden durch PHP-8-Attribute ersetzt – #[Route] statt @Route
  • Event-Subscriber verwenden das #[AsEventListener]-Attribut fuer die automatische Registrierung
  • Die minimale PHP-Anforderung ist jetzt 8.1, wobei 8.2+ empfohlen wird

Die gute Nachricht: Die meisten Hooks und das Modulsystem selbst bleiben abwaertskompatibel. Ihr hookDisplayHeader() funktioniert weiterhin. Aber wenn Ihr Modul Symfony-Services, Admin-Controller oder CQRS-Commands registriert – pruefen Sie diese sorgfaeltig.

Doctrine ORM ersetzt ObjectModel fuer den Core

Das ist die Aenderung, die die meisten Entwickler ueberrascht. Core-Entitaeten wie Product, Category und Customer werden jetzt ueber Doctrine verwaltet. Was das in der Praxis bedeutet:

  • Direkte SQL-Abfragen gegen Core-Tabellen funktionieren weiterhin, aber die ORM-Schicht sieht Ihre Aenderungen moeglicherweise nicht sofort
  • Der Db::getInstance()-Ansatz funktioniert weiterhin fuer Ihre eigenen Modultabellen
  • Wenn Sie CQRS-Handler verwenden, die mit Core-Entitaeten interagieren, wechseln Sie zum Doctrine-Repository-Muster
  • Legacy-ObjectModel-Unterklassen fuer Core-Entitaeten sind als veraltet markiert

API Platform: Endlich echtes REST

PrestaShop 9 bietet eine richtige REST-API auf Basis von API Platform. Dies ersetzt den veralteten Webservice, der seit PrestaShop 1.5 existiert. Wichtige Verbesserungen:

  • JSON:API-konforme Antworten mit richtiger Paginierung und Filterung
  • OAuth 2.0-Authentifizierung mit eingeschraenkten Zugriffstokens
  • OpenAPI-Dokumentation automatisch aus Entity-Metadaten generiert
  • Benutzerdefinierte API-Ressourcen koennen von Modulen ueber Standard-API-Platform-Annotationen hinzugefuegt werden

Migrations-Checkliste fuer Modulentwickler

  1. Test auf PHP 8.1+ – entfernen Sie PHP-7.x-Kompatibilitaetscode
  2. Symfony-Services pruefen – stellen Sie sicher, dass Service-Definitionen mit Symfony 6.4 kompatibel sind
  3. CQRS-Handler ueberpruefen – wechseln Sie den Core-Entity-Zugriff auf Doctrine-Repositorys
  4. Admin-Controller aktualisieren – wenn Sie Symfony-Controller nutzen, migrieren Sie Annotationen zu Attributen
  5. Datenbankoperationen testen – pruefen Sie, ob direkte SQL-Abfragen auf Core-Tabellen neben dem ORM wie erwartet funktionieren
  6. ps_versions_compliancy hinzufuegen – setzen Sie die Min-/Max-Version im Modul-Deskriptor, um PS9-Unterstuetzung anzuzeigen

Was gleich bleibt

Nicht alles aendert sich. Das Hook-System, Smarty-Templates fuer das Frontend, das Modul-Deskriptor-Format und die allgemeine Verzeichnisstruktur bleiben konsistent. PrestaShops Abwaertskompatibilitaetsversprechen bedeutet, dass die meisten gut geschriebenen Module mit minimalen Anpassungen funktionieren.

Die wichtigste Erkenntnis: Testen Sie frueh, aktualisieren Sie Ihre Service-Definitionen und setzen Sie auf Doctrine, wo es sinnvoll ist. PrestaShop 9 ist eine bessere Grundlage fuer die Zukunft – und Module, die die neuen Muster uebernehmen, sind langfristig einfacher zu warten.

Beitrag teilen:
David Miller

David Miller

Über ein Jahrzehnt praktische PrestaShop-Expertise. David entwickelt leistungsstarke E-Commerce-Module mit Fokus auf SEO, Checkout-Optimierung und Shop-Management. Leidenschaft für sauberen Code...

Kommentare (8)

T
Thomas Mueller 14.02.2026
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.
Antworten
E
Elena Rodriguez 14.02.2026
Does anyone know if the hook system changes affect actionProductUpdate? We rely heavily on that hook for our inventory sync module.
Antworten
D
David Miller 14.02.2026
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 14.02.2026
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.
Antworten
S
Sophie Laurent 14.02.2026
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 14.02.2026
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.
Antworten
M
Marcus Weber 14.02.2026
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?
Antworten
D
David Miller 14.02.2026
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.

Kommentar hinterlassen

Lade ...
Zum Seitenanfang