Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
OperationDom.php
Go to the documentation of this file.
1 <?php
7 
12 
18 {
19  const METADATA_FILE_NAME_ENDING = "meta";
22 
27  private $validationUtil;
28 
39  public function __construct(
40  $xml,
41  $filename,
42  $exceptionCollector,
43  array $idAttributes = [],
44  $typeAttributeName = null,
45  $schemaFile = null,
46  $errorFormat = self::ERROR_FORMAT_DEFAULT
47  ) {
48  $this->validationUtil = new DuplicateNodeValidationUtil('key', $exceptionCollector);
49  parent::__construct(
50  $xml,
51  $filename,
52  $exceptionCollector,
53  $idAttributes,
57  );
58  }
59 
67  public function initDom($xml, $filename = null)
68  {
69  $dom = parent::initDom($xml, $filename);
70 
71  if (strpos($filename, self::METADATA_FILE_NAME_ENDING)) {
72  $operationNodes = $dom->getElementsByTagName('operation');
73  foreach ($operationNodes as $operationNode) {
75  $operationNode->setAttribute(self::METADATA_META_FILENAME_ATTRIBUTE, $filename);
77  $operationNode,
78  $filename,
79  $operationNode->getAttribute(self::METADATA_META_NAME_ATTRIBUTE)
80  );
81  }
82  }
83 
84  return $dom;
85  }
86 
94  public function validateOperationElements(\DOMElement $parentNode, $filename, $topParent)
95  {
96  $this->validationUtil->validateChildUniqueness(
97  $parentNode,
98  $filename,
99  $topParent
100  );
101  $childNodes = $parentNode->childNodes;
102 
103  for ($i = 0; $i < $childNodes->length; $i++) {
104  $currentNode = $childNodes->item($i);
105  if (!is_a($currentNode, \DOMElement::class)) {
106  continue;
107  }
109  $currentNode,
110  $filename,
111  $topParent
112  );
113  }
114  }
115 }
validateOperationElements(\DOMElement $parentNode, $filename, $topParent)
__construct( $xml, $filename, $exceptionCollector, array $idAttributes=[], $typeAttributeName=null, $schemaFile=null, $errorFormat=self::ERROR_FORMAT_DEFAULT)
$i
Definition: gallery.phtml:31