Magento2:插件和首选项之间的基本区别是什么?
我在magento2教程中同时使用了插件和首选项,两者都工作正常,但是它们之间的基本区别是什么。 插件代码: 1.1)在di.xml中添加一个插件声明: <type name="Magento\Catalog\Model\Product"> <plugin name="magento-catalog-product-plugin" type="Training\Test\Model\Product" sortOrder="10"/> </type> 1.2)创建一个插件类: <?php namespace Training\Test\Model; class Product { public function afterGetPrice(\Magento\Catalog\Model\Product $product, $result) { return 5; } } 偏好代码: 2.1)创建一个首选项声明: <preference for="Magento\Catalog\Model\Product" type="Training\Test\Model\Testproduct" /> 2.2)创建一个新的产品类: <?php namespace Training\Test\Model; class Testproduct extends \Magento\Catalog\Model\Product { public function getPrice() { return 3; } }