ฉันใช้ทั้งปลั๊กอินและการตั้งค่าในการกวดวิชา 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;
}
}