![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-config/Model/Config/Structure/Mapper/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /** * System Configuration Dependencies Mapper */ namespace Magento\Config\Model\Config\Structure\Mapper; /** * @api * @since 100.0.2 */ class Dependencies extends \Magento\Config\Model\Config\Structure\AbstractMapper { /** * Class that can convert relative paths from "depends" node to absolute * * @var \Magento\Config\Model\Config\Structure\Mapper\Helper\RelativePathConverter */ protected $_pathConverter; /** * @param \Magento\Config\Model\Config\Structure\Mapper\Helper\RelativePathConverter $pathConverted */ public function __construct( \Magento\Config\Model\Config\Structure\Mapper\Helper\RelativePathConverter $pathConverted ) { $this->_pathConverter = $pathConverted; } /** * Apply map * * @param array $data * @return array */ public function map(array $data) { if ($this->_hasValue('config/system/sections', $data)) { foreach ($data['config']['system']['sections'] as &$sectionConfig) { $sectionConfig = $this->_processConfig($sectionConfig); } } return $data; } /** * Process configuration * * @param array $config * @return array */ protected function _processConfig($config) { $config = $this->_processDepends($config); if ($this->_hasValue('children', $config)) { foreach ($config['children'] as &$subConfig) { $subConfig = $this->_processConfig($subConfig); } } return $config; } /** * Process dependencies configuration * * @param array $config * @return array */ protected function _processDepends($config) { if ($this->_hasValue('depends/fields', $config)) { foreach ($config['depends']['fields'] as &$field) { $dependPath = $this->_getDependPath($field, $config); $field['dependPath'] = $dependPath; $field['id'] = implode('/', $dependPath); } } return $config; } /** * Get depend path * * @param array $field * @param array $config * @return string[] * @throws \InvalidArgumentException */ protected function _getDependPath($field, $config) { $dependPath = $field['id']; $elementPath = $config['path'] . '/' . $config['id']; return explode('/', $this->_pathConverter->convert($elementPath, $dependPath)); } }