Обойдя основной код Magento 2 , похоже, что старая система переписывания классов была разорвана и заменена новой системой внедрения зависимостей.
К сожалению, нет документации для этой новой системы.
Есть ли у кого-нибудь пример конфигурации модуля, который позволил бы пользователю в Magento 2 «переписать» класс Mage_Catalog_Model_Product
новым классом Packagename_Modulename_Model_Product
, используя новую систему внедрения зависимостей?
Ответы:
Конфигурация Di была перемещена в файлы di.xml, а формат был изменен. Теперь настройки выглядят так (di.xml):
источник
Работая изнутри, я смог переписать, работая со следующими
Однако в реализации внедрения зависимостей намного больше системного кода, поэтому неясно, сработает ли вышеперечисленное в окончательной версии Magento 2.
источник
Вы правы, переписывание классов было полностью исключено и заменено на DI. Следующие примечания относятся к разделу об изменениях в Application Framework :
Magento 1.x - Узел: / global // {подпуть, соответствующий имени фабрики + литерал "rewrite"}
Magento 2.x - Узел: / global / di / aliases
Я не пробовал использовать это в модуле, работающем в Magento 2.0, но кажется, что вы в основном определяете псевдоним для имени класса вместо того, чтобы использовать сложную иерархию xml для перезаписей для каждого модуля.
источник