Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SourceItemsSaveHandler.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
10 use Exception;
17 use Psr\Log\LoggerInterface;
18 
23 {
27  private $sourceItemsValidator;
28 
32  private $saveMultiple;
33 
37  private $logger;
38 
44  public function __construct(
45  SourceItemsValidator $sourceItemsValidator,
46  SaveMultiple $saveMultiple,
47  LoggerInterface $logger
48  ) {
49  $this->sourceItemsValidator = $sourceItemsValidator;
50  $this->saveMultiple = $saveMultiple;
51  $this->logger = $logger;
52  }
53 
63  public function execute(array $sourceItems)
64  {
65  if (empty($sourceItems)) {
66  throw new InputException(__('Input data is empty'));
67  }
68 
69  $validationResult = $this->sourceItemsValidator->validate($sourceItems);
70  if (!$validationResult->isValid()) {
71  throw new ValidationException(__('Validation Failed'), null, 0, $validationResult);
72  }
73 
74  try {
75  $this->saveMultiple->execute($sourceItems);
76  } catch (Exception $e) {
77  $this->logger->error($e->getMessage());
78  throw new CouldNotSaveException(__('Could not save Source Item'), $e);
79  }
80  }
81 }
__()
Definition: __.php:13
$logger
$sourceItems
__construct(SourceItemsValidator $sourceItemsValidator, SaveMultiple $saveMultiple, LoggerInterface $logger)