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;
}
}