3
getExtensionAttributes()を実装する正しい方法
拡張可能な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、モデルがインスタンス化されたばかりの場合でも、常にのインスタンスを確実に取得できます。 しかし、なぜそれが他のモジュールで使用されないのですか?カスタマーモジュールに表示されるデータモデルの新しい分離に反対ですか?もしそうなら、拡張属性をどのように初期化するべきですか?