PrestaShop 9 e il piu grande salto architettonico dalla serie 1.7. Sotto il cofano, la piattaforma e passata a Symfony 6.4 LTS, ha sostituito i pattern legacy ObjectModel con Doctrine ORM per le entita principali e ha introdotto una vera API REST basata su API Platform. Se mantieni moduli, questi cambiamenti contano – e prepararsi ora ti evita una corsa frenetica in seguito.

Il passaggio a Symfony 6.4

PrestaShop 9 viene fornito con Symfony 6.4, il che significa diverse cose per gli sviluppatori di moduli:

  • Le definizioni dei servizi devono usare le nuove convenzioni di autowiring – il vecchio approccio services.yml funziona ancora ma e deprecato
  • Le annotazioni dei controller sono sostituite dagli attributi PHP 8 – #[Route] invece di @Route
  • Gli event subscriber usano l'attributo #[AsEventListener] per la registrazione automatica
  • Il requisito minimo di PHP e ora 8.1, con 8.2+ raccomandato

La buona notizia: la maggior parte degli hook e il sistema dei moduli stesso rimangono retrocompatibili. Il tuo hookDisplayHeader() funziona ancora. Ma se il tuo modulo registra servizi Symfony, controller admin o comandi CQRS – esaminali attentamente.

Doctrine ORM sostituisce ObjectModel per il core

Questo e il cambiamento che coglie di sorpresa la maggior parte degli sviluppatori. Le entita principali come Product, Category e Customer sono ora gestite tramite Doctrine. Cosa significa in pratica:

  • Le query SQL dirette sulle tabelle principali funzionano ancora, ma il layer ORM potrebbe non vedere le tue modifiche immediatamente
  • L'approccio Db::getInstance() e ancora funzionale per le tue tabelle di modulo
  • Se usi handler CQRS che interagiscono con le entita principali, passa al pattern Doctrine Repository
  • Le sottoclassi legacy ObjectModel per le entita principali sono marcate come deprecate

API Platform: finalmente un vero REST

PrestaShop 9 espone una vera API REST costruita su API Platform. Questo sostituisce il vecchio webservice presente da PrestaShop 1.5. Miglioramenti chiave:

  • Risposte conformi JSON:API con paginazione e filtraggio corretti
  • Autenticazione OAuth 2.0 con token di accesso con scope limitato
  • Documentazione OpenAPI auto-generata dai metadati delle entita
  • Le risorse API personalizzate possono essere aggiunte dai moduli usando le annotazioni standard di API Platform

Checklist di migrazione per sviluppatori di moduli

  1. Testare su PHP 8.1+ – rimuovere il codice di compatibilita PHP 7.x
  2. Controllare i servizi Symfony – assicurarsi che le definizioni dei servizi siano compatibili con Symfony 6.4
  3. Rivedere gli handler CQRS – migrare l'accesso alle entita principali ai repository Doctrine
  4. Aggiornare i controller admin – se usi controller Symfony, migrare le annotazioni agli attributi
  5. Testare le operazioni sul database – verificare che le query SQL dirette sulle tabelle principali funzionino come previsto accanto all'ORM
  6. Aggiungere ps_versions_compliancy – impostare la versione min/max nel descrittore del modulo per indicare il supporto PS9

Cosa resta uguale

Non tutto cambia. Il sistema di hook, i template Smarty per il front-office, il formato del descrittore del modulo e la struttura generale delle directory rimangono coerenti. La promessa di retrocompatibilita di PrestaShop significa che la maggior parte dei moduli ben scritti funzionera con aggiustamenti minimi.

Il punto chiave: testa presto, aggiorna le definizioni dei servizi e adotta Doctrine dove ha senso. PrestaShop 9 e una base migliore per il lungo termine – e i moduli che abbracciano i nuovi pattern saranno piu facili da mantenere.

Condividi questo articolo:
David Miller

David Miller

Oltre un decennio di esperienza pratica con PrestaShop. David sviluppa moduli e-commerce ad alte prestazioni focalizzati su SEO, ottimizzazione del checkout e gestione del negozio. Appassionato di...

Commenti (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.
Rispondi
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.
Rispondi
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.
Rispondi
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.
Rispondi
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?
Rispondi
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.

Lascia un commento

Caricamento in corso ...
Torna all'inizio