확장 가능한 EAV 모델을 구현하는 올바른 방법이 무엇인지 궁금했습니다.
나는 점에서 볼 Magento\Catalog\Model\Product
방법은, getExtensionAttributes()
다음과 같이 구현됩니다 :
public function getExtensionAttributes()
{
$extensionAttributes = $this->_getExtensionAttributes();
if (!$extensionAttributes) {
return $this->extensionAttributesFactory->create('Magento\Catalog\Api\Data\ProductInterface');
}
return $extensionAttributes;
}
그러나 고객 또는 카테고리 모델과 같은 다른 경우에는
public function getExtensionAttributes()
{
return $this->_getExtensionAttributes();
}
extension_attributes 키가 이전에 설정되지 않은 경우 NULL 결과로 이어질 수 있습니다 .
실용적으로 나는 첫 번째를 선호합니다. 이렇게 Magento\Framework\Api\ExtensionAttributesInterface
하면 모델이 방금 인스턴스화 된 경우에도 항상의 인스턴스를 얻을 수 있습니다 .
그러나 왜 다른 모듈에서 사용되지 않습니까? 고객 모듈에서 볼 수있는 새로운 데이터 모델 분리와 반대 되는가? 그렇다면 확장 속성을 어떻게 초기화해야합니까?