Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractStorage.php
Go to the documentation of this file.
1 <?php
7 
9 use Magento\UrlRewrite\Service\V1\Data\UrlRewriteFactory;
11 
15 abstract class AbstractStorage implements StorageInterface
16 {
20  protected $urlRewriteFactory;
21 
25  protected $dataObjectHelper;
26 
31  public function __construct(
32  UrlRewriteFactory $urlRewriteFactory,
34  ) {
35  $this->urlRewriteFactory = $urlRewriteFactory;
36  $this->dataObjectHelper = $dataObjectHelper;
37  }
38 
42  public function findAllByData(array $data)
43  {
44  $rows = $this->doFindAllByData($data);
45 
46  $urlRewrites = [];
47  foreach ($rows as $row) {
48  $urlRewrites[] = $this->createUrlRewrite($row);
49  }
50  return $urlRewrites;
51  }
52 
59  abstract protected function doFindAllByData(array $data);
60 
64  public function findOneByData(array $data)
65  {
66  $row = $this->doFindOneByData($data);
67 
68  return $row ? $this->createUrlRewrite($row) : null;
69  }
70 
77  abstract protected function doFindOneByData(array $data);
78 
82  public function replace(array $urls)
83  {
84  if (!$urls) {
85  return [];
86  }
87  return $this->doReplace($urls);
88  }
89 
97  abstract protected function doReplace(array $urls);
98 
105  protected function createUrlRewrite($data)
106  {
107  $dataObject = $this->urlRewriteFactory->create();
108  $this->dataObjectHelper->populateWithArray(
109  $dataObject,
110  $data,
111  \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class
112  );
113  return $dataObject;
114  }
115 }
__construct(UrlRewriteFactory $urlRewriteFactory, DataObjectHelper $dataObjectHelper)