Magento hizmet sözleşmeleri
Esasen, hizmet sözleşmeleri sadece veri bütünlüğünü koruyan ve iş mantığını gizleyen bir dizi arabirim ve sınıftır. Müşterilerin bunu kullanmak istemesinin nedeni, sözleşmenin hizmetin kullanıcılarını etkilemeden gelişmesine izin vermesidir.
Bu yükseltmenin önemli olmasının nedeni, kullanıcıların farklı modüllerle etkileşim kurma biçimini değiştirmesidir. Magento 1'de, diğer modüllerle etkileşim kurmanın iyi bir yolu yoktu. Magento 2'deki servis sözleşmeleri ile, sistemin yapısı hakkında endişelenmenize gerek kalmadan verilere kolayca erişebilir ve bunları değiştirebilirsiniz.
Hizmet sözleşmesi mimarisi
Hizmet katmanının iki farklı arabirim türü vardır: Veri arabirimleri ve Hizmet arabirimleri. Veri arabirimleri, aşağıdaki kalıpları kullanarak veri bütünlüğünü koruyan nesnelerdir:
They’re read-only, since they only define constants and getters.
Getter functions can contain no parameters.
A getter function can only return a simple object type (string, integer, Boolean), a simple type array, and another data interface.
Mixed types can’t be returned by getter functions.
Data entity builders are the only way to populate and modify data interfaces.
Hizmet arabirimleri, bir istemcinin kullanabileceği bir dizi genel yöntem sağlar. Üç hizmet arabirimi alt türü vardır:
Repository Interfaces
Management Interfaces
Metadata Interfaces
Havuz arayüzleri
Havuz arayüzleri, kullanıcının kalıcı veri varlıklarına erişmesini sağlar. Örneğin, Müşteri Modülündeki kalıcı veri varlıkları Tüketici, Adres ve Gruptur. Bu bize üç farklı arayüz sağlar:
CustomerRepositoryInterface
AddressRepositoryInterface
GroupRepositoryInterface
Bu arayüzlerin sahip olduğu yöntemler:
Save – If there’s no ID, creates a new record, and updates what’s existing if there is one.
Get – Looks for the IDs in the database and returns a certain data entity interface.
GetList – Finds all data entities that correspond with the search criteria, then gives access to the matches by returning the search result interface.
Delete – Deletes the selected entity
DeleteById – Deletes the entity when you only have its key.
Yönetim arayüzleri
Bu arabirimler, depolarla ilgisi olmayan farklı yönetim işlevleri içerir. İşte bazı örnekler:
AccountManagementInterface contains functions such as createAccount(), isEmailAvailable(), changePassword(), and activate().
AddressManagementInterface checks whether an address is valid by using the validate() function.
Örüntü sayısı sürekli artmaktadır ve bu şekilde, bu işlevlerden bazılarının bunlara eklenmesi muhtemeldir.
Meta veri arayüzleri
Meta veri arabirimleri, belirli bir varlık için tanımlanan tüm öznitelikler hakkında bilgi verir. Bu, getCustomAttribute ($ name) işleviyle erişebileceğiniz özel öznitelikleri de içerir. Bu özel özellikler şunları içerir:
EAV attributes – Defined via the administration interface for a local site. They can differ according to the site, which means that they can’t be represented in the data entity interface written in PHP.
Extension attributes, for which the extension modules are used.
Referans:
https://www.interactivated.me/uk/blog/service-contracts-magento-2/