Technologie et packages Paquet

Compatibility Layer : une base de code pour plusieurs versions

Traits de compatibilité PrestaShop : réponses AJAX, chemins de templates, noms de hooks et signatures de contrôleurs normalisés.

Un jeu de helpers. Plusieurs générations de PrestaShop.

PrestaShop évolue considérablement d'une version à l'autre. Les signatures des méthodes de contrôleur ont changé entre la 1.7 et la 8.x. Les chemins des templates ont été déplacés. Les formats de réponse AJAX diffèrent. Des noms de hooks ont été renommés. Le balisage du panneau d'administration a été remanié pour l'intégration Symfony.

La plupart des développeurs de modules gèrent cela avec des vérifications if (version_compare) disséminées dans tout leur code. Nous le gérons avec une couche de compatibilité qui absorbe les différences, afin que les modules s'écrivent sur une API stable.

Ce qu'elle normalise

  • Réponses AJAX : format de réponse JSON standardisé quelle que soit la version de PS
  • Chemins de templates : des helpers partagés pour résoudre le chemin d'un template de module
  • Traduction : un équivalent de trans() pour la 1.6, qui n'en propose ni sur Module, ni sur Controller, ni sur ObjectModel
  • Points d'injection front : renvoie le jeu de hooks qui existe sur la version en cours, et indique clairement quand une version n'en offre aucun
  • Formatage des prix : un appel qui survit à la suppression de Tools::displayPrice() en PS 9

Pourquoi c'est important

Ces helpers centralisent les vérifications de version qui seraient sinon éparpillées dans chaque module. Les versions de PrestaShop prises en charge par un module donné sont indiquées sur ce module, et testées là.

← Retour à Notre stack technologique

Chargement...
Retour en haut