Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DeleteMultiple.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
13 
19 {
23  private $resourceConnection;
24 
28  public function __construct(
29  ResourceConnection $resourceConnection
30  ) {
31  $this->resourceConnection = $resourceConnection;
32  }
33 
40  public function execute(array $sourceItems)
41  {
42  if (!count($sourceItems)) {
43  return;
44  }
45  $connection = $this->resourceConnection->getConnection();
46  $tableName = $this->resourceConnection->getTableName(SourceItemResourceModel::TABLE_NAME_SOURCE_ITEM);
47 
48  $whereSql = $this->buildWhereSqlPart($sourceItems);
49  $connection->delete($tableName, $whereSql);
50  }
51 
56  private function buildWhereSqlPart(array $sourceItems): string
57  {
58  $connection = $this->resourceConnection->getConnection();
59 
60  $condition = [];
61  foreach ($sourceItems as $sourceItem) {
62  $skuCondition = $connection->quoteInto(
63  SourceItemInterface::SKU . ' = ?',
64  $sourceItem->getSku()
65  );
66  $sourceCodeCondition = $connection->quoteInto(
68  $sourceItem->getSourceCode()
69  );
70  $condition[] = '(' . $skuCondition . ' AND ' . $sourceCodeCondition . ')';
71  }
72  return implode(' OR ', $condition);
73  }
74 }
$tableName
Definition: trigger.php:13
$sourceItems
$connection
Definition: bulk.php:13