Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Save.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 use Psr\Log\LoggerInterface;
16 
20 class Save implements SaveInterface
21 {
25  private $sourceValidator;
26 
30  private $sourceResource;
31 
35  private $logger;
36 
42  public function __construct(
43  SourceValidatorInterface $sourceValidator,
44  SourceResourceModel $sourceResource,
45  LoggerInterface $logger
46  ) {
47  $this->sourceValidator = $sourceValidator;
48  $this->sourceResource = $sourceResource;
49  $this->logger = $logger;
50  }
51 
55  public function execute(SourceInterface $source)
56  {
57  $validationResult = $this->sourceValidator->validate($source);
58 
59  if (!$validationResult->isValid()) {
60  throw new ValidationException(__('Validation Failed'), null, 0, $validationResult);
61  }
62 
63  try {
64  $this->sourceResource->save($source);
65  $source->getSourceCode();
66  } catch (\Exception $e) {
67  $this->logger->error($e->getMessage());
68  throw new CouldNotSaveException(__('Could not save Source'), $e);
69  }
70  }
71 }
$source
Definition: source.php:23
__()
Definition: __.php:13
$logger
execute(SourceInterface $source)
Definition: Save.php:55
__construct(SourceValidatorInterface $sourceValidator, SourceResourceModel $sourceResource, LoggerInterface $logger)
Definition: Save.php:42