Magento 2'nin hizmet sözleşmesi mimarisinin bir parçası olarak veri modelleri getirdiğinin farkındayım. Veri modelleri genellikle bir modülün Api / Data / öğesinde tanımlanan arayüzleri uygular.
Ancak, Magento eski modelleri de korumuş görünüyor.
Modül-müşteriye bir örnek verelim.
- Api / Data / CustomerInterface.php içinde tanımlanan veri modeli arayüzü
- Yukarıdaki arayüz Model / Data / Customer.php içinde uygulanır.
- Veri modeli, beklendiği gibi müşteri değişkenleri için tüm alıcı ve ayarlayıcı işlevine sahiptir
- Yukarıdakilere ek olarak bir Model / Customer.php de vardır. Bu da alıcı ve ayarlayıcı işlevine sahiptir. Bu daha çok ResourceModel'e (Model / ResourceModel / Customer.php) bağlanan bir Magento 1 modeline benzer
- Model / ResourceModel / CustomerRepository.php'de, çeşitli işlevler Magnento 1 modelinden veri toplar, bunları veri modeline aktarır ve sonra veri modelini döndürür.
Neden eski modele ihtiyaç var? Veri modeli neden ResourceModel ile doğrudan bağlanamıyor?
\Magento\Customer\Api\Data\CustomerInterface
İçindeki tüm yöntemler REST / SOAP API'sine (etkinse) maruz bırakılır. Bununla birlikte, hangi yöntemlerin gösterileceğini seçmek için bir veri modeline ihtiyacınız yoktur, çünkü bunun yerine arayüzü 'gerçek' modele bağlayabilirsiniz. İşte böyle yapılır\Magento\Catalog\Model\Product
ve\Magento\Catalog\Api\Data\ProductInterface