Child pages
  • Modules, surcharge, web service

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Modules, surcharge, web service… Les outils pour personnaliser sa boutique !

Cet article a été écrit par Damien Metzger, et publié sur le blog de PrestaShop le 2 mai 2011.

Les modules ont toujours été, depuis la naissance de PrestaShop, le moyen le plus simple et le plus puissant pour les marchands de personnaliser leurs boutiques. Et pourtant, PrestaShop introduit dans sa version 1.4 deux nouvelles possibilités d’interaction pour aller encore plus loin, plus vite, plus efficacement. Introduction à la surcharge du cœur et à l’utilisation du web service.

Surcharge du cœur

La surcharge permet à tous les développeurs, qu’ils soient freelances ou au sein d’une agence, de changer le comportement des classes qui constituent le cœur de PrestaShop… sans les modifier ! Il est ainsi possible d’étendre le code de PrestaShop, soit pour le remplacer par son propre code –optimisé pour les besoins de sa boutique par exemple–, soit simplement pour ajouter des instructions à celles existantes.

Depuis la version 1.4, un développeur souhaitant modifier une classe de PrestaShop ne doit donc plus toucher aux fichiers cœur, mais créer une classe fille dans le dossier /override apparu à la racine du logiciel.

Exemple

Pour ajouter un message « Hello World ! » à chaque instanciation de produit –ce qui est parfaitement inutile–, il suffit de placer dans le dossier /override/classes un fichier Product.php contenant les lignes suivantes :

Code Block
class Product extends ProductCore
{
  public function __construct($id_product = NULL, $full = false, $id_lang = NULL)
  {
    echo 'Hello World !';
    parent::__construct($id_product, $full, $id_lang);
  }
}

Ainsi, un technicien qui intervient sur la boutique peut immédiatement identifier les modifications apportées. De plus, et c’est là l’essentiel, la mise à jour de PrestaShop vers une version supérieure est considérablement facilitée, car il suffit de tester la compatibilité de ses classes surchargées plutôt que de faire un diff fastidieux et chronophage avec les fichiers de la nouvelle version.

Si vous n’êtes pas à l’aise avec le concept d’héritage, nécessaire à la réalisation d’une classe fille, vous pouvez vous référer à la page dédiée sur Wikipedia : http://fr.wikipedia.org/wiki/Héritage_(informatique)

Web service

Les web services sont de plus en plus présents dans tous les domaines de l’informatique, et sont une évolution technologique indispensable à l’évolution actuelle du web, et donc du e-commerce.

Appliqué à PrestaShop, un service web permet aux développeurs, qu’ils soient familiers ou non au développement sur PrestaShop, de récupérer et d’envoyer des informations à la boutique, à distance, sans intégrer du code au logiciel !

La technologie choisie par PrestaShop pour son web service est REST. Le principal avantage de ce style d’architecture est qu’il repose sur le format XML, et les fichiers XML qui sont échangés entre le client et le web service sont construits de telle manière qu’on peut les utiliser intuitivement, sans devoir au préalable lire plusieurs pages de documentation spécifique à l’application. Un développeur connaissant cette technologie pourra ainsi naturellement utiliser le service, et un débutant s’adaptera très rapidement.

PrestaShop met à la disposition des développeurs une librairie PHP permettant d’utiliser le webservice sans avoir à construire les fichiers XML à la main. Différents codes d’exemples sont également proposés pour mieux comprendre ses différentes possibilités.

Une documentation très complète sur le web service est disponible sur le site de documentation de PrestaShop : http://doc.prestashop.com/

Vous trouverez plus d’information sur REST sur la page dédiée de Wikipedia : http://en.wikipedia.org/wiki/Representational_State_Transfer

Comment choisir ?

Bien qu’elles permettent toutes de modifier le comportement et d’ajouter des fonctionnalités à une boutique, ces trois outils ont des applications qui peuvent être très différentes. Le choix du bon outil n’est donc pas anodin.

Pour faire des modifications spécifiques à votre boutique, qui ne seront jamais utilisées ailleurs, alors dans la plupart des cas la surcharge du cœur –classes ou contrôleurs– est la meilleure solution. C’est en effet la méthode la plus naturelle, performante et proche du cœur pour faire des modifications. Il faudra néanmoins surveiller son bon fonctionnement après une mise à jour, en particulier si des corrections ont été apportées aux fonctions que vous avez surchargé ou si certaines sont devenues obsolètes.

Si au contraire la modification ne doit pas s’appliquer à une seule boutique mais au contraire est prévue pour être packagée et distribuée, en particulier sur la place de téléchargement PrestaShop Addons, alors le choix du module d’impose. Le module est également le choix de la propreté, car son système de hook permet immédiatement de voir quelles sont les modifications apportées à chaque événement lancé sur la boutique. Quelqu’un qui reprend le code, pour l’utiliser ou pour l’améliorer, pourra immédiatement cerner la portée d’action du module.

Enfin, le web service est le choix à privilégier lorsque la boutique doit interagir avec un logiciel externe. Cette technique permet non seulement à l’application tierce de communiquer avec la boutique sans ajout de code, mais le web permet aussi de limiter les droits, protégeant ainsi les informations confidentielles.