Magento2 Proxies Design Pattern | Proxies | Magento 2 Documentation Developpeur

8 septembre 2018 4 Par admin
Magento2 Proxies Design Pattern | Proxies | Magento 2  Documentation Developpeur

Ceci est le dernier blog sur la génération de code, dans mes précédents articles, nous avons compris la génération de code factory et intercepteur, dans ce blog nous allons essayer de comprendre le modèle de proxy et la génération de code et son besoin dans magento2.

Qu’est-ce que le modèle de conception de proxy:
Comme nous le savons, la conception de pattrens est destinée à résoudre un problème redondant dans l’ensemble du projet, le modèle de conception de proxy résout également un problème spécifique. Les proxys fonctionnent comme des substituts (signifie agir pour le compte d’autrui), dans la programmation des proxys sont des classes qui peuvent être utilisées à la place de toute autre classe, et dans magento2 des proxies sont utilisés dans des classes gourmandes en ressources.

Permet de comprendre pourquoi ce problème vient dans magento2.

Problème:

Dans magento2, un nouveau concept introduit l’injection de dépendance, il existe de nombreux types d’injection de dépendance mais le meilleur est l’injection de constructeur et l’injection de méthode et magento2 les utilise tous les deux, mais l’injection de constructeur autre objet de classe dans votre classe, ne l’instanciez pas dans la classe, injectez l’objet dans le constructeur puis utilisez l’objet dans la classe, donc lorsque votre classe sera instanciée, toutes les dépendances injectées dans votre constructeur de classe seront également instanciées , et cela va déclencher une réaction en chaîne de la création d’objets, cela peut vraiment ralentir le processus, alors pour arrêter la réaction de la création d’objets, magento2 utilise un modèle de conception de proxy.

Solution:

La solution de ce problème dépend aussi de l’injection de dépendances, puisque le fichier de configuration d’injection de dépendances (di.xml) vous permet de modifier le style de vie des objets (constructor params). Donc, en tant que développeur, vous pouvez facilement comprendre quelle classe est le coupable, et vous devez arrêter son instanciation dans le constructeur. Vous devez donc simplement ajouter une configuration de type dans di.xml comme ceci: https://github.com/marouanbmm/importexport/blob/master/MageTun/ImportExport/etc/di.xml

Nous pouvons comprendre cela en analysant simplement une classe proxy, regardons la classe proxy dans ce lien: https://github.com/marouanbmm/importexport/tree/master/MageTun/ImportExport

 

C’est tout dans ce blog, j’espère que c’est facile à comprendre, mais si vous avez des questions concernant ce blog, vous pouvez me demander dans les commentaires ci-dessous, je vais certainement essayer de répondre à vos questions.

Please follow and like us: