Fondamentaux
Table des matières
/*<![CDATA[*/ div.rbtoc1597316603714 {padding: 0px;} div.rbtoc1597316603714 ul {list-style: disc;margin-left: 0px;} div.rbtoc1597316603714 li {margin-left: 0px;padding-left: 0px;} /*]]>*/
Fondamentaux
Concepts
Avant de vous lancer dans la création d'un module, il est préférable que vous maîtrisiez déjà la programmation orientée Objet avec PHP.
PrestaShop a été conçu pour que des modules tiers puissent facilement être construits sur ses fondations, ce qui en fait une solution e-commerce particulièrement personnalisable.
Un module est une extension à PrestaShop qui permet à n'importe quel développeur de :
ajouter des fonctionnalités à PrestaShop ;
afficher de nouvelles informations sur le site (sélection de produits, etc.) ;
communiquer avec d'autres acteurs e-commerce (guides d'achat, plate-forme de paiement, plates-formes logistiques...)
etc.
La société qui développe PrestaShop fournit plus de 100 modules gratuitement avec la solution elle-même, vous permettant de lancer rapidement et gratuitement votre boutique en ligne.
Plus de 1600 modules sont également disponibles sur le site officiel. Ces modules additionnels, ont été conçus par la société PrestaShop ou par des membres de la communauté de PrestaShop, et sont vendus à des prix abordables. En tant que développeurs, vous pouvez vous aussi vendre vos modules sur ce site, et recevoir 70% des ventes liées à votre création. Inscrivez-vous !
Architecture technique de PrestaShop
PrestaShop est basé sur une architecture 3-tiers :
Objet/données. L'accès à la base de données se fait par le biais des fichiers du dossier
/classes
.Contrôle des données. Le contenu envoyé à l'utilisateur est vérifié par les fichiers du dossier racine.
Apparence. Tous les fichiers du thème sont dans le dossier
/themes
.
Il s'agit du même principe que pour l'architecture MVC (Modèle-Vue-Contrôleur), en plus simple et plus accessible.
Notre équipe de développeurs a choisi de ne pas utiliser de framework PHP, tel que Zend Framework, Symfony ou CakePHP, afin d'obtenir une meilleure lisibilité du code, et donc de permettre des modifications plus rapides.
Cela permet également d'obtenir de meilleures performances, étant donné que le logiciel n'est fait que de lignes de code qu'il utilise effectivement, et qu'il ne contient pas un lit de bibliothèques génériques ajoutées.
Une architecture 3-tiers a de nombreux avantages :
Il est plus facile de lire le code du logiciel.
Les développeurs peuvent ajouter et corriger le code plus rapidement.
Les designers et intégrateurs HTML peuvent travailler en toute sécurité dans le dossier
/themes
sans avoir à comprendre ou même lire une seule ligne de code PHP.Les développeurs peuvent travailler sur des données et modules supplémentaires que les intégrateurs HTML peuvent exploiter.
Modèle
Un modèle représente le comportement de l'application : traitement des données, interaction avec la base de données, etc.
Il décrit ou contient les données qui ont été traitées par l'application. Il gère ces données, et garantit leur intégrité.
Vue
Une vue est l'interface avec laquelle l'utilisateur interagit.
Son premier rôle est d'afficher les données qui ont été fournies par le modèle. Son second rôle est de gérer toutes les actions en provenance de l'utilisateur (clic de la souris, sélection d'un élément, boutons, etc.) et d'envoyer ces données au contrôleur.
La vue ne fait aucun traitement : elle ne fait qu'afficher le résultat d'un traitement réalisé par le modèle, et interagit avec l'utilisateur.
Contrôleur
Le contrôleur gère la synchronisation des évènements entre le modèle et la vue, et met les deux à jour en fonction des besoins. Il reçoit tous les évènements utilisateur, et déclenche les actions à réaliser.
Si une action a besoin de modifier des données, le contrôleur "demandera" au modèle de modifier ces données, et en retour le modèle notifiera la vue que les données ont été changées, afin que la vue puisse se mettre à jour.
Schéma SQL
Vous pouvez télécharger le schéma de PrestaShop 1.5 au format PDF (3.76 Mo), ou au format original (vous devrez télécharger MySQL Workbench pour le lire).
Last updated