J'ai besoin de remplacer la classe à l' \Magento\Catalog\Model\Product\Link
aide de préférence, ce qui fonctionne bien, mais la classe mentionnée ci-dessus a une classe proxy générée automatiquement \Magento\Catalog\Model\Product\Link\Proxy
, qui n'inclut pas les nouvelles méthodes ajoutées dans la substitution. Existe-t-il un moyen d'injecter ces méthodes dans la classe proxy?
ÉDITER
J'ai essayé de creuser cela et j'ai constaté que nous pouvons injecter un proxy en utilisant di.xml. Mais quand j'ai essayé de faire ça, j'ai eu une exception que la classe Package\Module\Model\Class\Proxy
n'existe pas. Cela signifie que le nouveau proxy que j'essaie de générer n'est pas généré automatiquement.
magento2
code-generation
product-linking
proxy
Taral Patoliya
la source
la source
di.xml
une préférence pour\Magento\Catalog\Model\Product\Link\Proxy
toPackage\Module\Model\Class\Proxy
?Réponses:
Après avoir lu des commentaires dans lesquels vous avez déclaré:
Tout le problème que vous essayez de résoudre peut être fait de manière plus élégante et moins douloureuse.
Si vous venez d'ajouter de nouvelles méthodes à l'implémentation existante, cela signifie que vous ne modifiez pas le comportement de la classe d'origine
Cela vous donne de tels avantages secondaires:
la source
J'ai réussi à générer le
Proxy.php
fichier correct qui comprenait ma nouvelle fonction en ajoutant ce qui suit à mon moduledi.xml
Merci @minlare pour l'aide
la source