En fouillant le code de base de Magento 2 , il semble que l'ancien système de réécriture de classe ait été arraché et remplacé par un nouveau système d'injection de dépendances.
Malheureusement, il n'y a pas de documentation pour ce nouveau système.
Quelqu'un a-t-il un exemple de configuration de module qui permettrait à un utilisateur, dans Magento 2, de "réécrire" la classe Mage_Catalog_Model_Product
avec une nouvelle classe Packagename_Modulename_Model_Product
, en utilisant le nouveau système d'injection de dépendances?
Réponses:
La configuration Di a été déplacée vers les fichiers di.xml et le format a été modifié. Maintenant, les préférences ressemblent à ceci (di.xml):
la source
En travaillant de l'intérieur vers l'extérieur, j'ai pu obtenir une réécriture avec les éléments suivants
Cependant, il y a beaucoup plus de code système dans l'implémentation de l'injection de dépendance, donc il n'est pas clair si ce qui précède fonctionnera dans la version finale de Magento 2.
la source
Vous avez raison, les réécritures de classe ont été entièrement éliminées et remplacées par DI. Les notes suivantes sont extraites de la section sur les modifications du cadre d'application :
Magento 1.x - Noeud: / global // {sous-chemin qui correspond au nom d'usine + "réécriture" littéral}
Magento 2.x - Noeud: / global / di / aliases
Je n'ai pas essayé de l'utiliser dans un module fonctionnant dans Magento 2.0, mais il semble que vous définissiez essentiellement un alias pour le nom de classe au lieu d'utiliser la hiérarchie compliquée de xml pour les réécritures par module.
la source