| Current Path : /home/rtorresani/www/vendor/magento/module-inventory-api/Api/ |
| Current File : //home/rtorresani/www/vendor/magento/module-inventory-api/Api/SourceItemRepositoryInterface.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\InventoryApi\Api;
/**
* In Magento 2 Repository considered as an implementation of Facade pattern which provides a simplified interface
* to a larger body of code responsible for Domain Entity management
*
* The main intention is to make API more readable and reduce dependencies of business logic code on the inner workings
* of a module, since most code uses the facade, thus allowing more flexibility in developing the system
*
* Along with this such approach helps to segregate two responsibilities:
* 1. Repository now could be considered as an API - Interface for usage (calling) in the business logic
* 2. Separate class-commands to which Repository proxies initial call (like, Get Save GetList Delete) could be
* considered as SPI - Interfaces that you should extend and implement to customize current behaviour
*
* The method save is absent, due to different semantic (save multiple)
* @see SourceItemsSaveInterface
*
* There is no get method because SourceItem identifies by compound identifier (sku and source_code),
* so need to use getList() method
*
* Used fully qualified namespaces in annotations for proper work of WebApi request parser
*
* @api
*/
interface SourceItemRepositoryInterface
{
/**
* Find SourceItems by SearchCriteria
*
* We need to have this method for direct work with SourceItems because this object contains
* additional data like as qty, status (for example can be searchable by additional field)
*
* @param \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria
* @return \Magento\InventoryApi\Api\Data\SourceItemSearchResultsInterface
*/
public function getList(
\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria
): \Magento\InventoryApi\Api\Data\SourceItemSearchResultsInterface;
}