我想知道,实现可扩展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,即使模型刚刚实例化,我也始终可以确保获得的实例。
但是,为什么在其他模块中不使用它呢?是否与我们在客户模块中看到的新的数据模型分离背道而驰?如果是这样,我们应该如何初始化扩展属性?