1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Cron\Model\Groups\Config\Converter;
- /**
- * Converts cron parameters from XML files
- */
- class Xml implements \Magento\Framework\Config\ConverterInterface
- {
- /**
- * Converting data to array type
- *
- * @param mixed $source
- * @return array
- * @throws \InvalidArgumentException
- */
- public function convert($source)
- {
- $output = [];
- if (!$source instanceof \DOMDocument) {
- return $output;
- }
- $groups = $source->getElementsByTagName('group');
- foreach ($groups as $group) {
- /** @var $group \DOMElement */
- if (!$group->hasAttribute('id')) {
- throw new \InvalidArgumentException('Attribute "id" does not exist');
- }
- foreach ($group->childNodes as $child) {
- if (!$child instanceof \DOMElement) {
- continue;
- }
- /** @var $group \DOMElement */
- $output[$group->getAttribute('id')][$child->nodeName]['value'] = $child->nodeValue;
- if ($child->hasAttribute('tooltip')) {
- $output[$group->getAttribute('id')][$child->nodeName]['tooltip'] = $child->getAttribute('tooltip');
- }
- }
- }
- return $output;
- }
- }
|