Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Rows.php
Go to the documentation of this file.
1 <?php
7 
10 
15 class Rows extends \Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction
16 {
20  protected $flatItemEraser;
21 
31  public function __construct(
34  \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper,
35  \Magento\Catalog\Model\Product\Type $productType,
36  TableBuilder $tableBuilder,
37  FlatTableBuilder $flatTableBuilder,
39  ) {
40  parent::__construct(
41  $resource,
43  $productHelper,
44  $productType,
45  $tableBuilder,
46  $flatTableBuilder
47  );
48  $this->flatItemEraser = $flatItemEraser;
49  }
50 
59  public function execute($ids)
60  {
61  if (empty($ids)) {
62  throw new \Magento\Framework\Exception\LocalizedException(__('Bad value was supplied.'));
63  }
64  foreach ($this->_storeManager->getStores() as $store) {
65  $tableExists = $this->_isFlatTableExists($store->getId());
66  $idsBatches = array_chunk($ids, \Magento\Catalog\Helper\Product\Flat\Indexer::BATCH_SIZE);
67  foreach ($idsBatches as $changedIds) {
68  if ($tableExists) {
69  $this->flatItemEraser->removeDeletedProducts($changedIds, $store->getId());
70  }
71  if (!empty($changedIds)) {
72  $this->_reindex($store->getId(), $changedIds);
73  }
74  }
75  }
76  return $this;
77  }
78 }
$storeManager
__()
Definition: __.php:13
$resource
Definition: bulk.php:12
__construct(\Magento\Framework\App\ResourceConnection $resource, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper, \Magento\Catalog\Model\Product\Type $productType, TableBuilder $tableBuilder, FlatTableBuilder $flatTableBuilder, Eraser $flatItemEraser)
Definition: Rows.php:31