Question

le code de base Magento 2 , il ressemble à l'ancien système de réécriture de classe a été arraché et remplacé par un nouveau système d'injection de dépendance.

Malheureusement, il y a pas de documentation pour ce nouveau système.

quelqu'un a un exemple de configuration du module qui permettrait à un utilisateur, dans Magento 2, "réécrire" la Mage_Catalog_Model_Product de classe avec une nouvelle Packagename_Modulename_Model_Product de classe, en utilisant le nouveau système d'injection de dépendance?

Était-ce utile?

La solution

configuration Di a été déplacé aux fichiers di.xml, et le format a été modifié. Maintenant, les préférences ressemblent à ceci (di.xml):

<config>
    <preference for="{Interface_Or_Class_Name}" type="{Preferred_Class_Name}" />
</config>

Autres conseils

travail de l'intérieur, j'ai pu obtenir un travail de réécriture avec les éléments suivants

<global>    
    <di>    
        <preferences>
            <Mage_Catalog_Model_Product>Packagename_Modulename_Model_Product</Mage_Catalog_Model_Product>
        </preferences> 
    </di>
</global>

Cependant, il y a beaucoup plus de code des systèmes dans la mise en œuvre d'injection de dépendance, donc on ne sait pas si le travail de volonté ci-dessus dans la version finale de Magento 2.

Vous avez raison, réécritures de classe ont été entièrement éliminé et remplacé par DI. Les notes suivantes sont de la section Application Framework change :

Magento 1.x - Noeud: / global // {sous-chemin qui correspond au nom de l'usine + "Transforme" littéral}

<global>
...
    <models>
        <core>
            <rewrite>
                <url>My_Module_Model_Url</url>
            </rewrite>
        </core>
    </models>
...
</global>

Magento 2.x - Noeud: / global / di / alias

<global>
...
    <di>
        <aliases>
            <Mage_Core_Model_Url>My_Module_Model_Url</Mage_Core_Model_Url>
        </aliases>
    </di>
...
</global>

Je ne l'ai pas essayé l'utilisation de ce dans un module en cours d'exécution dans Magento 2.0, mais il semble que vous définissez essentiellement un alias pour le nom de classe au lieu d'utiliser la hiérarchie complexe de xml pour réécritures par module.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top