Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
StatementAggregator.php
Go to the documentation of this file.
1 <?php
8 
15 {
22  private $statementsBank = [];
23 
31  private function canDoMerge(Statement $bankStatement, Statement $statement)
32  {
34  if ($statement instanceof ReferenceStatement && $statement->getName() === $bankStatement->getName()) {
35  return false;
36  }
37 
46  return empty($bankStatement->getTriggers()) &&
47  $statement->getType() === $bankStatement->getType() &&
48  $statement->getTableName() === $bankStatement->getTableName() &&
49  $statement->getResource() === $bankStatement->getResource();
50  }
51 
60  public function addStatements(array $statements)
61  {
62  foreach ($statements as $statement) {
64  foreach ($this->statementsBank as $bankId => $bank) {
65  foreach ($bank as $bankStatement) {
66  if (!$this->canDoMerge($bankStatement, $statement)) {
67  continue 2;
68  }
69  }
70 
71  $this->statementsBank[$bankId][] = $statement;
72  continue 2;
73  }
74 
75  $this->statementsBank[][] = $statement;
76  }
77  }
78 
84  public function getStatementsBank()
85  {
86  return $this->statementsBank;
87  }
88 }