Qu’on se le dise, la première fois qu’on ouvre un projet magento, on a qu’une envie : partir le plus loin possible du PC ! Du XML, des dossiers dans tout les sens, digne d’un film de James Wan ! Mais pas d’inquiétude. Dans cette série, je vais vous accompagner pas à pas comme si je m’asseyais à côté de vous pour vous expliquer calmement ce que vous avez sous les yeux.
L’objectif de ce premier article est simple. Vous offrir une vision claire de la structure de Magento 2, de ses grands principes et des fichiers que vous rencontrerez dès vos premières minutes sur un projet.
Comprendre la logique modulaire de Magento 2
Magento est un framework e-commerce entièrement modulaire. Cela signifie que chaque fonctionnalité, même la plus basique, existe dans un module dédié. C’est ce découpage très fin qui peut impressionner au début, mais c’est aussi ce qui rend Magento puissant et extensible.
Le rôle des modules
Un module Magento est un ensemble organisé de fichiers qui apportent une fonctionnalité précise. Magento ne fonctionne que grâce à l’agrégation de dizaines de modules core, auxquels vous ajoutez les modules vendor et vos modules personnalisés.
Un module contient généralement :
- un fichier
etc/module.xmlqui déclare son existence - un fichier
registration.phpqui l’enregistre auprès du framework - éventuellement des répertoires
etc,Model,View,Block,Controller,Plugin,Observer, etc.
Vérifier les modules installés
Une commande bien pratique pour explorer un projet :
bin/magento module:status
Elle vous permet de visualiser les modules activés et désactivés. Cela vous donne immédiatement une idée de la taille fonctionnelle du projet.
Comment Magento charge les modules
Magento lit d’abord tous les module.xml, reconstruit une liste ordonnée avec les dépendances et active les fichiers de chaque module dans un ordre précis. Cet ordre impacte notamment la surcharge des fichiers view, des préférences ou des plugins.
Explorer l’arborescence et les dossiers essentiels
Lorsque vous chargez le projet la première fois, vous voyez une dizaine de dossiers à la racine. Voici ceux que vous devez comprendre immédiatement.
app
Sans surprise, c’est là que vit votre application.
app/codecontient les modules custom de votre entreprise.app/designcontient vos thèmes et vos overrides de fichiers view.app/etccontient la configuration globale, notammentconfig.phpetenv.php.
vendor
Il s’agit de la partie gérée par Composer. Vous y trouverez Magento ainsi que toutes les dépendances tierces. On ne modifie jamais ce répertoire manuellement.
Pour mettre à jour les packages :
composer update
Pour installer un nouveau module :
composer require <package>
pub
C’est la partie publique du projet. Les assets compilés, les images et les fichiers générés sont exposés ici. En production, c’est généralement ce dossier qui est servi par Nginx ou Apache.
generated
Magento génère ici énormément de classes lors de la compilation, notamment les factories, proxies et interceptors. Si vous développez, il arrive que vous deviez vider ce dossier :
rm -rf generated/*
var
Logs, cache, rapports, sessions. Vous viendrez souvent dans ce répertoire.
Pour vider le cache :
bin/magento cache:flush
Comprendre Composer et le système de dépendance
Composer est le cœur du fonctionnement moderne de Magento 2. Sans Composer, vous ne pouvez pas installer Magento proprement ni gérer de projet professionnel.
Pourquoi Composer est indispensable
Composer fait trois choses essentielles :
- il installe Magento et tous ses composants
- il versionne les dépendances dans composer.lock pour que toute l’équipe utilise les mêmes versions
- il génère l’autoload PSR 4 qui permet à Magento de charger automatiquement toutes les classes
Le fichier composer.json
Vous le lirez très souvent. Il contient les dépendances des modules, les scripts exécutés après installation et la configuration du projet.
Un extrait typique :
{
"require": {
"magento/product-community-edition": "2.4.8",
"php": "^8.3"
}
}
3.3 Installer Magento via Composer
Avant toute installation de Magento avec Composer, vous devez disposer de vos clés d’authentification Adobe Commerce. Ces clés permettent d’accéder au dépôt privé repo.magento.com, indispensable pour télécharger le core Magento et les modules officiels.
Vous pouvez obtenir ces clés ici :
https://experienceleague.adobe.com/fr/docs/commerce-operations/installation-guide/prerequisites/authentication-keys
Une fois vos clés générées et configurées avec Composer, vous pouvez installer Magento depuis zéro avec la commande suivante :
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
Composer installera alors Magento, toutes ses dépendances et préparera l’arborescence de votre projet.
Magento peut sembler massif au premier abord, mais une fois que vous comprenez sa structure et la logique des modules, tout devient beaucoup plus lisible. Ce premier épisode vous donne les bases nécessaires pour évoluer dans un projet, comprendre l’arborescence et savoir où regarder quand vous démarrez un développement.
Dans le prochain article de cette série, nous verrons comment fonctionne la configuration XML, comment Magento résout les classes via DI et comment commencent réellement les premiers développements. Vous pourrez ainsi entrer dans la mécanique interne du framework sans appréhension.
Et si vous voulez lancer rapidement et efficacement votre premier projet Magento 2 en local, pensez à utiliser Warden !

