Мне нужно переопределить класс \Magento\Catalog\Model\Product\Link
с помощью предпочтения, который работает нормально, но вышеупомянутый класс имеет прокси-класс, сгенерированный автоматически \Magento\Catalog\Model\Product\Link\Proxy
, который не включает новые методы, добавленные в переопределение. Есть ли способ, которым мы можем внедрить эти методы в прокси-класс?
РЕДАКТИРОВАТЬ
Я попытался разобраться с этим и обнаружил, что мы можем внедрить прокси с помощью di.xml. Но когда я попытался сделать это, я получил исключение, что класс Package\Module\Model\Class\Proxy
не существует. Это означает, что новый прокси, который я пытаюсь сгенерировать, не генерируется автоматически.
magento2
code-generation
product-linking
proxy
Тарал Патолия
источник
источник
di.xml
предпочтении\Magento\Catalog\Model\Product\Link\Proxy
кPackage\Module\Model\Class\Proxy
?Ответы:
Прочитав комментарии, в которых вы указали:
Вся проблема, которую вы пытаетесь решить, может быть выполнена более элегантно и менее болезненно.
Если вы просто добавили новые методы в существующую реализацию, это означает, что вы не меняете поведение исходного класса.
Это дает вам такие дополнительные преимущества:
источник
Мне удалось создать правильный
Proxy.php
файл, который включал мою новую функцию, добавив следующее в мой модульdi.xml
Спасибо @minlare за помощь
источник