Magento

L'environnement de développement Magento

Magento est construit sur diverses technologies (langages de programmation, bases de données, etc.), que vous connaissez ou non, selon votre niveau préalable en informatique. Si les lecteurs les plus spécialistes auront peu d’intérêt à s’y attarder, les plus novices trouveront dans ce chapitre tout ce qu’il leur faut connaître de l’environnement de développement de Magento,

Le Web : rappels fondamentaux

Magento est un logiciel qui fonctionne sur le Web uniquement. Même si vous faites partie des internautes réguliers.
Les adresses ou URL
Un site web se présente donc sous la forme d’une succession de pages, associées par des liens (ou hyperliens) sur lesquels les utilisateurs cliquent pour y accéder. C’est cette navigation dite « hypertexte » qui caractérise le Web. À chacun de ces liens correspond une adresse, appelée URL (Uniform Resource Locator), commençant par http:// ou https://, que l’on peut éventuellement aussi saisir telle quelle dans la barre d’adresses du navigateur pour accéder directement à la page.
Les URL observent toutes la forme suivante :
[protocole]://[sous-domaine].[domaine].[extension]:[port]/[emplacement][page]?[paramètres]
Mais certains de ces éléments sont optionnels.

HTTP... S ?
HTTP et HTTPS sont les deux protocoles hypertextes disponibles pour un site web. Une partie du site peut être en HTTP et l’autre en HTTPS.
HTTP est le sigle de HyperText Transfer Protocol (protocole de transfert hypertexte), tandis que le S de HTTPS signifie secured, sécurisé. Le système de protection utilisé est une technologie appelée SSL (Secure Socket Layer). Il s’agit d’une sécurité pour la confidentialité (pas de lecture de la part d’un tiers) et l’intégrité (pas de modification de la part d’un tiers) des données transmises via le Web.
Lorsque le HTTPS est en place, les données sont chiffrées entre le navigateur de votre visiteur et votre serveur. Une tierce personne (sur le même réseau d’entreprise que votre client, chez votre fournisseur
d’accès, chez votre hébergeur...) ne peut plus avoir accès aux données, dans un sens comme dans l’autre ; elle peut seulement savoir si des requêtes sont effectuées. Or si le HTTP est disponible quoiqu’il arrive, le HTTPS est plus délicat à mettre en place. Cela inclut notamment l’achat (quelques dizaines
d’euros) d’un certificat valable quelques années. Magento est adapté à l’utilisation du HTTPS, et cela peut être une bonne idée de le mettre en place si certaines données doivent rester confidentielles
à tout prix. Par exemple :
• le paiement, si celui-ci se fait directement sur votre site (ce qui est rare), afin de vous protéger des vols de numéros de cartes bancaires ;
• la lecture de votre part des bilans, afin de vous protéger de vos concurrents ;
• certaines pages particulières, qui seraient accessibles uniquement par certaines personnes (une section « ventes privées », par exemple).
La mise en place du SSL (système de protection du HTTPS) sur le serveur entraînant quelques ralentissements, celui-ci est donc souvent, même lorsqu’il est mis en place, réservé aux seules pages concernées par les besoins que nous venons de citer. Enfin, ce système demande des compétences d’administration de serveur web spécifiques au serveur en question, qui ne sont pas abordées dans cet ouvrage. Si le SSL fait partie de l’offre de votre hébergeur, il n’y aura alors aucune difficulté. Il n’aura qu’à vous indiquer le port spécial du HTTPS (souvent 443 au lieu de 80).

Structure d’un site web
Généralement, un site web est caractérisé par deux éléments :
• le nom de domaine, qui a été acheté pour lui ;
• le serveur, une machine physique correspondant à ce nom de domaine.
Sur un même site, portant un même nom de domaine, plusieurs outils peuvent éventuellement cohabiter, sans que cela ne pose de problèmes majeurs. Ces différents systèmes doivent alors être différenciés dans les
URL. Voici les trois solutions :
• créer différents sous-domaines (exemples : magento.rizdumonde.fr et xsltcms.rizdumonde.fr) ;
• indiquer différents chemins (exemples : www.rizdumonde.fr/magento/ et www.rizdumonde.fr/spip/) ;
• utiliser différents ports (exemples : www.rizdumonde.fr:81 et www.rizdumonde.fr:80).

La seconde solution, consistant à différencier des chemins, est la plus simple (voir le chapitre suivant « Installer et tester Magento »). Les autres solutions demandent des compétences d’administration de serveur
web qui ne sont pas abordées dans cet ouvrage.
Pourquoi utilise-t-on des services web ?
Les services web (Web Services ou WS) sont des systèmes de communication entre applications hétérogènes utilisant le HTTP ou le HTTPS.
C’est un bon moyen pour profiter des architectures existantes afin de faire passer des données entre applicatifs divers, par exemple des sites web éloignés l’un de l’autre.
Plusieurs normes basées sur le XML sont utilisées, parmi lesquelles :
• XML-RPC, une norme simple et légère, plus ancienne et plus limitée ;
• WS-* (incluant SOAP), qui sont les services web du W3C, beaucoup plus complexes, car entrant dans tous les détails d’une communication complète entre applications.
Magento a plusieurs occasions d’utiliser des services web, ce que nous verrons par exemple dans le chapitre 8, pour les taux de change.

Le langage (X)HTML
Comme toute application web, l’un des langages principaux de Magento
est le HTML (HyperText Markup Language). C’est le langage de marquage utilisé pour représenter la plupart des données présentes sur le Web. Il est utilisé par Magento dans une variante récente, le XHTML 1.0 strict. Le HTML est un langage simple, destiné à toute personne désirant publier sur le Web. Ce n’est pas un langage de programmation, mais d’organisation des données, en fonction de leur statut dans le document. Il indique, pour une page, quels sont les titres, les paragraphes, les liens, etc., au moyen de
balises ouvrantes et fermantes (par exemple, <h1>titre de niveau 1</h1>, <p>texte d’un paragraphe</p>, <a href="URL"> pour un lien). Le XHTML est une variante récente (dont la version 1.0 est presque la
seule utilisée), datant de 2001. Le X de XHTML signifie eXtensible, car cette variante se fonde sur la syntaxe du langage de structuration XML (eXtensible Markup Language), abordé dans la dernière section de ce chapitre. Cette variante est très proche du HTML qui existait auparavant. Elle est un peu plus systématique, un peu moins permissive, car soumise à certaines contraintes du XML. Ces deux langages, ainsi que ceux qui suivent, sont standardisés par le W3C (voir l’aparté page précédente). Tous les navigateurs web en cours aujourd’hui respectent le XHTML correctement.

HTML, CSS et JavaScript

La plupart du temps, le HTML est employé en association avec les CSS (Cascading Style Sheet), feuilles de style permettant de régler la mise en forme de toutes les pages (couleurs, polices, etc.) à partir d’un seul fichier .css. Il peut contenir aussi du JavaScript, un langage de script spécialisé dans l’affichage dynamique des pages, c’est-à-dire autorisant l’interactivité. Connaître le HTML, le CSS et le JavaScript n’est utile que si vous désirez modifier le design de Magento, à savoir la présentation des pages.

Script.aculo.us

Script.aculo.us est la principale bibliothèque JavaScript fournie avec Magento. Une bibliothèque (library, en anglais) est un ensemble de fonctions, procédures, classes ou prototypes rassemblées dans un fichier pour être réutilisé par divers programmes pour un langage de programmation particulier. Dans Magento, les bibliothèques Prototype (base de Script.aculo.us) et ext.js sont également disponibles, bien que la seconde
y soit très peu utilisée (pour afficher des arborescences). Bibliothèque libre et gratuite, Script.aculo.us fournit des composants et fonctions graphiques pratiques et élégants pour l’interaction avec l’utilisateur et Ajax. Elle est abondamment utilisée et bien documentée.

MySQL, la base de données

MySQL est un système de gestion de base de données relationnelle SGDBR). Il se présente sous la forme d’un logiciel installé sur le serveur qui, dans un protocole spécifique, peut être interrogé afin d’enregistrer des données émises par le client ou de renvoyer des données enregistrées précédemment vers le client. Il est fondé sur le langage d’interrogation de base de données SQL (Structured Query Language). L’étude de MySQL et du SQL est utile en cas de modification du comportement interne de Magento, ainsi que pour occasionnellement interroger ou modifier les données (clients, produits, etc.) directement, sans
passer par l’interface de Magento (cas rares et déconseillés). De nombreux systèmes du même type existent. MySQL a la particularité d’être libre, gratuit et facile à administrer depuis longtemps, et en conséquence
systématiquement présent chez les fournisseurs d’hébergement.

PhpMyAdmin et SQL

L’administrateur de Magento aura tout intérêt à connaître les bases du SQL, afin de réaliser au besoin manuellement des requêtes sur ses propres données. Généralement, un outil courant, PhpMyAdmin, est disponible pour cela, notamment chez les hébergeurs de sites web. Cet outil permet la visualisation des différents niveaux cités ci-dessus. Une fois Magento installé, il suffit de choisir à gauche une base, si plusieurs sont disponibles, puis de sélectionner une table. L’onglet Afficher en haut permet de voir toutes les données de la table en question.

PHP, le langage à la base de Magento

Où est PHP et comment fonctionne-t-il ?

PHP est le langage de programmation principal dans lequel a été développé Magento. C’est un langage impératif, procédural et objet, assez simple et moderne. Il s’agit de l’un des langages usuels pour réaliser des sites web dynamiques. Son nom est un acronyme récursif, PHP Hypertext Preprocessor et sa licence (licence PHP), même si incompatible avec la licence GNU GPL, en fait un logiciel libre. Des millions de sites sont réalisés en PHP, de toutes tailles et complexités (par exemple : www.wikipedia.org, www.facebook.com).
PHP s’exécute, par opposition à JavaScript, sur le serveur. Tout le code PHP reste donc sur le serveur, car le résultat de l’exécution du PHP est simplement du HTML, qui sera interprété par le navigateur du client.
Voici le schéma d’une requête typique envoyée à un site Magento :

1.  Le client clique sur un lien, utilise un marque-page de son navigateur ou envoie un formulaire.

2.  Le navigateur crée une requête selon le protocole HTTP. La requête est envoyée via l’Internet jusqu’au serveur.

3. Le serveur reçoit la requête et, observant qu’elle correspond à du HTTP et ensuite au langage PHP (grâce à l’extension .php de la ressource demandée), appelle l’interpréteur correspondant.

4. L’interpréteur PHP utilise la requête et, éventuellement, communique avec une base de données, afin de produire un résultat HTML.

5. Le résultat HTML est renvoyé au serveur.

6. Ce même résultat est renvoyé au navigateur, qui le transforme en une présentation à l’écran. L’ensemble de ces phases a duré quelques dixièmes de secondes.

Le Zend Framework

Vous n’aurez besoin de connaître le PHP que si vous désirez modifier le comportement de PHP dans Magento. Or il s’agit de manipulations difficiles et coûteuses en temps. Dans de nombreux cas, Magento et ses extensions seront suffisants, sans que vous ayez besoin d’écrire du PHP. Le Zend Framework est la principale bibliothèque utilisée par les développeurs de Magento. Quelques classes issues de PEAR (PHP Extension and Application Repository), une autre collection de bibliothèques PHP, sont aussi incluses. L’objectif est ici de réutiliser plutôt que de réécrire, en bénéficiant de tout l’écosystème du logiciel libre (dont des licences compatibles entres elles, qui permettent un mélange sans restrictions). La société Zend est le mainteneur principal de PHP. Quant au Zend Framework, c’est un framework PHP libre, c’est-à-dire une bibliothèque proposant un cadre de développement. Connaître le fonctionnement du Zend Framework est utile pour le développeur PHP qui veut profiter de ses bibliothèques.

Les fichiers CSV

Les fichiers CSV sont des fichiers textuels simples pour les données tabulaires. Ils peuvent être ouverts et modifiés avec des éditeurs textuels ou des tableurs tels que OpenOffice.org Calc ou Microsoft Excel.
L’extension est habituellement .csv.

XML dans les fichiers et les messages

XML (eXtensible Markup Language) est un langage incomplet, c’est-àdire un langage générique qui doit être augmenté afin d’être complet. On parle aussi de métalangage. Il s’agit en quelque sorte d’un ensemble de règles de grammaire (syntaxe) et de vocabulaire (description de données) utiles pour structurer des documents et créer de nouveaux langages. Comme le HTML, il fait l’usage de balises dont les règles d’imbrication sont strictement réglementées. Il est particulièrement adapté à l’enregistrement de documents de petite ou moyenne taille (par exemple, un fichier de configuration) ou à la transmission de données (pour les services web, par exemple).
Magento utilise abondamment le XML. Il est nécessaire de le connaître si l’on veut maîtriser la création de nouveaux thèmes pour Magento ou la configuration manuelle de l’outil.

Aucun commentaire:

Enregistrer un commentaire