मैंने 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;
}
}
वरीयता के लिए कोड:
२.१) प्राथमिकता की घोषणा बनाएँ:
<preference for="Magento\Catalog\Model\Product"
type="Training\Test\Model\Testproduct" />
२.२) एक नया उत्पाद वर्ग बनाएँ:
<?php
namespace Training\Test\Model;
class Testproduct extends \Magento\Catalog\Model\Product
{
public function getPrice() {
return 3;
}
}