Utilisation des classes Proxy Magento 2

 

Magento 2 utilise le principe d'injection de dépendances comme alternative à la classe finale Mage de Magento 1. Cela veut dire que si une classe A dépend du service B, B doit être injecté directement dans le constructeur de A, ce n'est plus à A de récupérer la dépendance B au moment où il en a besoin.

Cela implique inévitablement que B doit être instancié avant d'être injecté dans A. Cela n'a rien de problématique en soi, par contre imaginons que l'instanciation de B soit relativement lourde en terme de ressource et que B possède également des dépendances, qui elles-mêmes possèdent des dépendances, qui elles-mêmes... Vous l'aurez compris, cela peut commencer à devenir non négligeable, surtout (et c'est là que la problématique devient intéressante) si A a besoin de B uniquement dans certaines conditions (selon l'état d'une variable, l'état d'un service, le calcul d'un résultat, ou autre), l'instanciation de B devient donc inutile si A n'en a jamais besoin. Les classes de type Proxy sont présentes pour répondre à cette problématique.

Le Full Page Cache (FPC) de Magento 2

 magento2

Le Full Page Cache (FPC) est un élément important à prendre en compte lors du développement d'un site quel qu'il soit afin d'en améliorer nettement les performances. L'arrivée de Magento 2 apporte une gestion native du FPC dans la version Community Edition (CE) lorsque Magento 1 ne le proposait que dans la version Enterprise Edition (EE). Il est possible d'utiliser le Full Page Cache avec un des mécanismes suivants :

  • le système de fichier,
  • la base de données,
  • Redis,
  • Varnish.

Magento 2 et les Virtual Types

magento_logo

Un "type virtuel" est un mécanisme de l'injection de dépendances de Magento 2. Il permet de changer les arguments d'un constructeur d'un objet spécifique, donc de gérer ses dépendances, sans affecter les autres classes qui ont elles-même une dépendance à cet objet. Dans les faits un virtual type n'est rien d'autre qu'une classe étendant une autre classe.

Il ne faut cependant pas interpréter un virtual type comme étant un moyen de surcharger une classe en modifiant l'une ou l'autre fonction de la classe étendue. Le virtual type n'est pas voué à changer le comportement d'un objet, mais seulement ses dépendances.

Vorlon.js simplifie le debug web à distance

logo vorlon js

Vorlon.js est un outil permettant le debug web à distance et multiplateforme. L'idée de ses créateurs (quelques évangélistes Microsoft) est de pallier les problématiques du debug de site web sur mobile. Il faut en effet utiliser des outils propriétaires pour chaque plateforme, que ce soit sur Chrome pour Android, Safari pour iOS, et IE pour Windows Mobile. Il existe pourtant bien un outil qui s'appelle Weinre, mais son interface n'est pas la plus agréable et il ne fonctionne que sous Chrome.

Dans cet article je vais donc vous présenter Vorlon.js dont l'objectif est de se rapprocher au maximum des outils de debug tels qu'on les connait dans les navigateurs avec F12, le tout à distance.

Optimisation Magento – Mise à plat des tables Customer

magento_logo

Un des atouts de la plateforme E-commerce Magento est son architecture de base de données dite "EAV". Cette architecture offre une grande flexibilité lorsqu'il s'agit par exemple d'ajouter un attribut sur l'entité Client ou Produit. L'avantage vient du fait que chaque ajout d'attribut ne va modifier en rien la structure des tables car la liste des attributs ainsi que leurs valeurs sont stockées dans des tables bien distinctes.

Node.js et le JavaScript serveur

Depuis quelques années, le JavaScript prend une ampleur qu'on n'imaginait pas il y a 10 ans. Il permet aujourd'hui de faire des applications Web complètes et performantes. Essentiellement utilisé au sein du navigateur du côté client, l'arrivée de Node.js a permis au JavaScript d'être utilisé et interprété du côté serveur. Ainsi, JavaScript peut être utilisé pour réaliser des applications client-serveur sans avoir besoin d'utiliser un langage orienté serveur tel que le PHP, le Java, ou encore le Ruby.
Le JavaScript est un langage basé sur des événements, ce qui fait de Node.js sa grande force.

nodejs.jpeg

Introduction à Ruby (et la gem Thor)

Pour ceux qui ne sont pas amis avec les langages de programmation inutilement verbeux et compliqués, mais qui n'ont pas été concquis par Perl ou Python, je vous propose aujourd'hui de vous pencher sur Ruby.
Ruby a été créé en 1995 par Yukihiro "Matz" Matsumoto autour de trois principes : simple à apprendre, rapide à débuter, et naturel à écrire. Ruby peut donc apparaître au premier abord simpliste, mais sa conception et son architecture internes sont très complexes.
Passons sans plus attendre à la pratique...

logo-ruby.gif