Magento2

/

le debug

Généralités

  • Plateforme e-commerce
     
  • Création en 2008
     
  • 2011 : eBay, 2015 : Permira, 2018 : Adobe
     
  • 2.0 en 2015, fin support v1 en 2020
     
  • Open Source/Commerce

Features

  • Compte client

  • Gestion catalogue

  • Gestion commandes

  • Tunnel de commande

  • Multisite

  • Gestion de promotions

  • Outils marketing

  • ...

Complexité

  • très lourd
     
  • documentation
     
  • expérience développeur
     
  • communauté
     
  • official guidelines
     
  • bonnes pratiques

Philosophie

  • Design Patterns (Layered Architecture, MVC, EAV, Publish-Subscribe, Factory, Service Contract, etc...)
     

  • Utilisation du standard au maximum
     

  • Respect du standard

  • app
    • code – modules spécifiques au projet
    • design – layouts, templates, CSS, LESS, polices…
    • etc – configuration de la plate-forme
    • i18n – traductions
  • bin : contient l'exécutable “magento”, prévu pour être lancé en ligne de commande.
  • dev : outils de développement
  • generated : fichiers auto-générés
  • lib : librairies de base du framework qui ne se trouvent pas dans vendor

Structure

  • pub : errors/static/media
  • var : fichiers temporaires

    • log : fichiers de log

    • reports : reportings d’erreur (en mode default ou production)

    • cache : cache (si Redis ou Memcached non utilisé)

    • page_cache : Full Page Cache (même remarque)

    • view_preprocessed : fichiers CSS compilés

  • vendor : modules de Magento et modules tiers.

Structure

Config

ou philosophie ?

Les modules

contenu

  • etc/
  • i18n/
  • view/
  • view/web (js)
  • Api/
  • Model/
  • Controlleur/
  • Test/
  • Setup/
  • ...

Les modules

config minimum

  • registration.php
     
  • etc/module.xml
     
  • composer.json (si réutilisable)

Back-end

  • Observer : se branche sur événement
     
  • Plugin : before/after/around - modifie méthode
     
  • Preference/Rewrite : surcharge classe

3 types de "branchements"

Front-end

  • Layout - XML

  • UiComponent - XML

  • Block - PHP

  • Template - PHTML

  • CSS - LESS

  • JavaScript - KnockoutJs

Thème

  • app/design/{area}/{vendor}/{theme}/path/to/file
     
  • principe d'héritage

Arborescence

Module

app/code/{vendor}/{module}/view/path/to/file

  • Layout - XML

  • UiComponent - XML

  • Block - PHP

  • Template - PHTML

Module

JavaScript - KnockoutJs

  • principe de mixins
     
  • fichier requirejs-config.js

Questions

Code ?

Le debug

Le debug

Presque un art

  • Gestion erreurs/logs/tests === debug plus facile
     

  • Trouver le bon scope
     

  • Masquer !== Résoudre

Il y a des outils !

Le debug

  • logs (console/fichiers)

  • commandes

  • navigateurs

    • inspecteur

    • console

    • debugger

    • réseau

  • XDebug

  • modules

Questions

Made with Slides.com