-
Filière :
Commerce & Marketplaces
-
Sous-filière :
e-commerce / Marketplaces
-
Référence
MAGB01
-
Durée
5 jours (35 h)
-
Prix par personne HT
2 300 € HT
Description
La formation Adobe Commerce / Magento 2 Open Source Back-end est une formation technique qui permet d’acquérir les compétences nécessaires pour pouvoir comprendre et étendre les possibilités fonctionnelles de Adobe Commerce / Magento 2 Open Source. Orienté travaux pratiques, vous aborderez l’ensemble des aspects du développement sous Adobe Commerce / Magento 2 Open Source.
Objectifs pédagogiques
- Installer Adobe Commerce / Magento 2 Open Source
- Créer un module Front et BackOffice Adobe Commerce / Magento 2 Open Source en respectant les bonnes pratiques de conception, codage et de test
- Mettre en place ou enrichir les APIs Adobe Commerce / Magento 2 Open Source
Public cible
Profils à dominante technique : Lead Dev, Ingénieur de développement, Développeur junior et senior souhaitant découvrir le framework Adobe Commerce / Magento 2 Open Source
Pré-requis
Expérience en développement objet PHP et de préférence connaissant Magento 1
Modalités d’évaluation
L’évaluation des acquis se fait tout au long de la session au travers d’ateliers de mise en pratique des notions et concepts abordés pendant la formation.
Méthodes pédagogiques
50 % Théorie / 50 % Pratique
Programme de la formation
Environnement
- Environnement Magento
- Environnement de développement
- Installation de Adobe Commerce / Magento 2 Open Source
- Configuration de l’environnement de développement
- Les modes : Default, Developer, Production, Maintenance
- Arborescence des fichiers
Modules
- Présentation générale
- Qu’est-ce qui constitue un module
- Contenu minimum d’un module
- Classes d’un module : PSR-2, autoloader, dependency injection, organisation…
- Fichiers XML d’un module : validation obligatoire, cloisonnement par area
- Traductions
Instanciation des objets
- Dependency Injection
- Object Manager
- Compilateur
Routage et Controllers
- Présentation générale
- Les différents Routers disponibles
- Principe de fonctionnement d’un Router
- Controllers (alias Action Classes)
- Interpêtation d’une URL module/action-path/action
- Configuration du routage pour chaque module
- Résulats possibles: page, JSON, redirection…
- Instanciation à l’intérieur d’un controller
Évènements et Observers
- Déclencher un évènement
- Déclarer un Observer
Plug-ins
- Concept et limitations
- Déclaration
- Convention de nommage
Zoom sur les tests unitaires
- Commandes: installation, exécution
- Création d’un TU
TP1
- Création d’un controller : Retour d’un JSON, Redirection, Gestion des paramètres
- Observer
- Plugins : Remplacement d’une méthode via plugin
Layouts
- Définition
- Les trois types de layout (page layout, configuration de page, layout générique)
- Utilisation des fichiers de layout : Conventions de nommage
- Contenus d’un layout: Containers, Blocks : Les différents types de Blocks prédéfinis
- Templates et leur utilisation
- UiComponents :
- Cas d’utilisation
- Définition
- UiComponents basiques et secondaires
- Templates des UiComponents
- Utilisation des UiComponents
- Exemples
- Références vers les Containers et Blocks existants
- Actions sur les Blocks
- Déplacement et suppression des Blocks et Containers
TP2
- Surcharge du controller créé dans le TP1
- Création d’une page avec une structure particulière : Création des Blocks avec templates
- Modification du layout créé dans un module différent
Base de données et ORM
- Models :
- Définitions: ORM, Models, Resource Models, Collections, Resource Adapters
- Généralités pour le CRUD
- Liaison Model / Resource Model
- Liaison Model / BDD
- Liaison Collection / Model
- Model Type Interface
- Vue détaillée : Model, Resource Model, Collection
- Scripts d’install et d’upgrade
- Types de script d’install (Install et Upgrade, Schema et Data)
- Installation d’un module
- Exemples de scripts
- EAV (Entity-Attribute-Value) :
- Concept
- Méta-tables
- Models utilisés
- Chargement et sauvegarde (Différences dans les implémentations des classes ORM, Process de chargement, Source Models : utilisation des valeurs ou labels pour les attributs de type “liste déroulante”)
- Gestion des attributs (Deux aspects de l’EAV : Méta-information et Contenu, Types des valeurs, Classe Setup spécifique, Création d’un nouvel attribut, Modèles des attributs: Backend, Source et Frontend)
- Entity Increment Model
TP3
- Création de deux tables via installer : “catalog_product_series” et “vendor” : Implémentation des classes ORM associées
- Création d’un attribut EAV “series” sur un produit via installer : Création d’un Source Model et Frontend Model pour cet attribut qui utilisent les données de la table “catalog_product_series”
- Création d’une table d’associations entre “vendor” et “catalog_product_entity”, utilisation des Resource Models et Collections pour afficher les vendors pour un produit en front
Service Contracts, API et Services Web
- Service Contracts
- Définition, avantages, inconvénients
- Composition d’un Service Contract : Data API, Service API
- Tags dans les commentaires nécessaires pour la génération des Web Services
- Implémentation des DTO (Data Transfer Objects) : “Custom Attributs” et “Extension Attributes”: déclaration et injection
- Service API : Business Logic API et Repositories
- Services Web (Publication d’un WS REST ou SOAP, Déclaration d’une méthode de webservice et mapping avec une interface Magento, REST : paramètres et requêtes via POST et PUT, SOAP: WSDL auto-généré et son URL, Gestion des ACL et authentification, Paramétrage en BO)
TP4
- Utilisation d’un Repository existant pour effectuer des recherches
- Création d’un Service Contract pour l’entité “vendor” créée précédemment
- Création d’un DTO et d’un Repository
- Publication des méthodes du Repository en tant que WebService
- Test de l’API SOAP
Back-office
- Présentation
- Implémentation d’un Controller BO en tenant compte des ACL
- Éléments récurrents: grilles et formulaires: UiComponents :
- Présentation des UiComponents dédiés: “listing” (grille) et “form” (formulaire) : Définition des composants enfants, Création des sources de données (composant dataSource et classe dataProvider), Exemples
- Pour les grilles : Définitions des filtres et des colonnes, Autres composants moins complexes: actions en masse, paginations etc
- Pour les formulaires : Déclaration des champs et leur organisation en fieldsets., Déclaration des boutons, Validation
- System Configuration :
- Présentation de la configuration BO
- Déclaration d’un point de config
- Inclusion d’un Source Model et d’un Frontend Model
- Menu : Configuration du menu de navigation en BO
ACL :
- Définition
- Organisation des ACL par rôles
- Exemples de contrôle des ACL: _isAllowed()
- Configuration dans la BO
- Création d’ACL
TP5
- Gestion des entités précédemment créées “series” et “vendor”
- Création des grilles et formulaires
- Ajout des liens dans le menu
- Création et utilisation des ACL adaptées
- Adaptation du WS précédemment créé pour utiliser ces ACL
Programme mis à jour le