LogoLogo
Homepage
  • Documentations for PrestaShop 1.4
  • English documentation 1.4
    • Getting Started
    • Updating PrestaShop
    • User Guide
      • Training
      • Customizing your shop
      • Browsing the front-office
      • Connecting to the PrestaShop back-office
      • Adding Products and Product Categories
      • A Look inside the Catalog
      • Managing Customers
      • Managing Orders
      • Managing Payment Methods
      • Managing Shipping
      • Understanding Statistics
      • Managing Modules
      • Managing Employees
      • Understanding the Preferences
      • Exploring PrestaShop's Tools
      • PrestaShop Support
    • System Administrator Guide
    • Developer Guide
      • Developer tutorials
        • Using the REST webservice
          • Chapter 1 - Creating Access to Back Office
          • Chapter 2 - Discovery - Testing access to the web service with the browser
          • Chapter 3 - First steps - Access the Web service and list client
            • 3.1 - Access the web service
            • 3.2 - Handling errors
            • 3.3 - List clients
          • Chapter 4 - Retrieve Data - Retrieving a Client
          • Chapter 5 - Modification - Update client
          • Chapter 6 - Creation - Remote Online Form
          • Chapter 7 - Removal - Remove customer accounts from the database
          • Chapter 8 - Advanced Use
          • Cheat-sheet - Concepts outlined in this tutorial
        • Understanding and using hooks
        • Synchronization via Hooks
        • Modules, Classes and Controller Override
        • Modules, Override, Web Service
        • Db class good practices for Prestashop 1.4
        • Carrier modules - functions, creation and configuration
        • Creating your own payment module
        • Accelerated Security Course - Episode 1 - Never Trust Foreign Data
        • Accelerated Security Course - Episode 2 - SQL Injections
        • Accelerated Security Course - Episode 3 - XSS
        • Accelerated Security Course - Episode 4 - CSRF
      • Fundamentals
      • Creating a PrestaShop module
      • Development standard
      • Public and overloadable methods
      • Web-service reference
      • How to use the forge to contribute to PrestaShop
      • Rocky's guides
        • PrestaShop 1.4.3 Development Guide
          • Architecture
          • Overriding Files
          • Creating Modules
          • Cookie Structure
          • Database Structure
        • PrestaShop 1.4.3 Performance Guide
    • Designer Guide
      • Coding a theme
      • Design tips
      • Implementing layered navigation in a theme
    • Troubleshooting
    • FAQ
    • User contributions
    • Documentation PDFs
  • Documentation française 1.4
    • Guide de démarrage
    • Mettre à jour PrestaShop
    • Guide de l'utilisateur
      • Formation
      • Personnaliser votre boutique
      • Se connecter au back-office de Prestashop
      • Ajouter des produits et des catégories de produits
      • Un aperçu du catalogue
      • Gérer les clients
      • Gérer les commandes
      • Gérer les méthodes de paiement
      • Gérer le transport
      • Comprendre les statistiques
      • Gérer les modules
      • Gérer les employés
      • Comprendre les préférences
      • Explorer les outils de PrestaShop
      • Obtenir de l'aide
    • Guide de l'administrateur système
    • Guide du développeur
      • Fondamentaux
      • Créer un module PrestaShop
      • Tutoriels pour développeurs
        • Tutoriel Webservice REST
          • Chapitre 1 - Mise en place - Création des accès dans le Back Office
          • Chapitre 2 - Découverte - Tester l'accès au service web avec le navigateur
          • Chapitre 3 - Premiers pas - Accéder au service web et lister les clients
            • 3.1 Accéder au service web
            • 3.2 Gestion des erreurs
            • 3.3 Lister les clients
          • Chapitre 4 - Récuperer des données : Récupérer un client
          • Chapitre 5 - Modification : Mettre à jour un client
          • Chapitre 6 - Création : Formulaire d'ajout à distance
          • Chapitre 7 - Suppression : Retirer des comptes client de la base
          • Chapitre 8 – Utilisation avancée
          • Chapitre 9 - Gestion des images
          • Chapitre 10 - Gestion des prix
          • Mémento : Notions énoncées dans ce tutoriel
        • Mieux comprendre et utiliser les hooks
        • La synchronisation via les Hooks
        • Surcharge et override
        • Modules, surcharge, web service
        • Les bonnes pratiques de la classe Db sur Prestashop 1.4
        • Les modules transporteurs - fonctionnement, création, configuration
        • Cours de sécurité accéléré no. 1 - Never trust foreign data
        • Cours de sécurité accéléré no. 2 - Injections SQL
        • Cours de sécurité accéléré no. 3 - XSS
        • Cours de Sécurité accéléré no. 4 - CSRF
    • Guide du designer
      • Conseils en design
      • Créer un thème
    • Guide du Vendeur
    • Import Wiki FR
      • Dépannage
        • Changer la taille maximum de téléchargement de fichiers
        • Comment ajouter une page à PrestaShop
        • Générer le fichier .htaccess par Prestashop pour avoir des URLs simplifiées
        • Générer un nouveau mot de passe manuellement
        • Import CSV
        • Personnalisation des mails clients
        • Problème d'allocation mémoire chez 1&1
        • Problème pour se connecter après avoir effacé une langue
        • Votre site ne répond plus, une page blanche s’affiche
      • Fidéliser les Clients
      • Gestion des Taxes
      • Installer Un Module
      • Sauvegarder votre Base de Données
    • PDF de la documentation
    • Contributions des utilisateurs
    • Questions fréquentes
  • Documentación española 1.4
    • Introducción
    • Actualización de PrestaShop
    • Guía de Usuario
      • Entrenamiento
      • Personalización de su tienda
      • Exploración del front-office
      • Conexión al back-office PrestaShop
      • Añadir Productos y Categorías de Productos
      • Una Mirada Dentro del Catálogo
      • Gestión de Clientes
      • Gestión de Pedidos
      • Gestión de Métodos de Pago
      • Gestión de Envío
      • Comprensión de las Estadísticas
      • Gestión de Módulos
      • Gestión de Empleados
      • Comprensión de Preferencias
      • Exploración de las herramientas de PrestaShop
      • Soporte PrestaShop
    • Guía del Administrador del Sistema
    • Guía del Desarrollador
      • Aspectos Fundamentales
      • Creación de un módulo de PrestaShop
      • Estándares de desarrollo
      • Manuales de desarrollador
        • Utilización del servicio web REST
          • Capítulo 1 - Creación de Acceso al Back Office
          • Capítulo 2 - Descubrimiento - Pruebas de acceso al servicio web con el navegador
          • Capítulo 3 - Primeros pasos - Acceso al servicio Web y lista de clientes
            • 3.1 - Acceso al servicio web
            • 3.2 - Manejo de errores
            • 3.3 - Enumeración de clientes
          • Capítulo 4 - Recuperación de datos - Recuperación de un cliente
          • Capítulo 5 - Modificación - Actualización de cliente
          • Capítulo 6 - Creación - Formulario En Línea Remoto
          • Capítulo 7 - Eliminación - Eliminar cuentas de clientes de la base de datos
          • Capítulo 8 - Uso avanzado
        • Comprensión y uso de hooks
        • Sincronización a través de Hooks
        • Módulos, Reemplazo, Servicio Web
        • Módulos, Clases y Reemplazo del Controlador
        • Buenas prácticas de Clase DB para Prestashop 1.4
        • Módulos de transportistas - funciones, creación y configuración
        • Curso Acelerado de Seguridad - Episodio 1 - Nunca Confíe en Datos Exteriores
        • Curso Acelerado de Seguridad - Episodio 2 - Inyecciones SQL
        • Curso Acelerado de Seguridad - Episodio 3 - XSS
        • Curso Acelerado de Seguridad - Episodio 4 - CSRF
      • Referencia del servicio web
    • Guía de Diseñador
      • Codificación de un tema
      • Consejos de Diseño
    • Solución de problemas
    • Preguntas Frecuentes
Powered by GitBook
On this page
  • Surcharge du coeur
  • Web service
  • Comment choisir ?

Was this helpful?

  1. Documentation française 1.4
  2. Guide du développeur
  3. Tutoriels pour développeurs

Modules, surcharge, web service

PreviousSurcharge et overrideNextLes bonnes pratiques de la classe Db sur Prestashop 1.4

Last updated 4 years ago

Was this helpful?

Cet article a été écrit par Damien Metzger, et .

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 coeur et à l’utilisation du web service.

Surcharge du coeur

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 coeur 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 coeur, 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 :

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 : é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.

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 coeur –classes ou contrôleurs– est la meilleure solution. C’est en effet la méthode la plus naturelle, performante et proche du coeur 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.

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.

Une documentation très complète sur le web service est disponible sur le site de documentation de PrestaShop :

Vous trouverez plus d’information sur REST sur la page dédiée de Wikipedia :

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 , 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.

publié sur le blog de PrestaShop le 2 mai 2011
http://fr.wikipedia.org/wiki/H
http://doc.prestashop.com/
http://en.wikipedia.org/wiki/Representational_State_Transfer
PrestaShop Addons