/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/App/Language/Config.php
146 строк
4 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2014 Adobe * All Rights Reserved. */ namespace Magento\Framework\App\Language; use Magento\Framework\Config\Dom; /** * Language pack configuration file */ class Config { /** * @var \Magento\Framework\Config\Dom\UrnResolver */ protected $urnResolver; /** * @var \Magento\Framework\Config\DomFactory */ protected $domFactory; /** * Data extracted from the configuration file * * @var array */ protected $_data; /** * Constructor * * @param string $source * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver * @param \Magento\Framework\Config\DomFactory $domFactory * @throws \Magento\Framework\Exception\LocalizedException */ public function __construct( $source, \Magento\Framework\Config\Dom\UrnResolver $urnResolver, \Magento\Framework\Config\DomFactory $domFactory ) { $this->urnResolver = $urnResolver; $this->domFactory = $domFactory; $dom = $this->domFactory->createDom(['xml' => $source, 'schemaFile' => $this->getSchemaFile()]); $this->_data = $this->_extractData($dom->getDom()); } /** * Get absolute path to validation scheme for language.xml * * @return string */ protected function getSchemaFile() { return $this->urnResolver->getRealPath('urn:magento:framework:App/Language/package.xsd'); } /** * Extract configuration data from the DOM structure * * @param \DOMDocument $dom * @return array */ protected function _extractData(\DOMDocument $dom) { /** @var $languageNode \DOMElement */ $languageNode = $dom->getElementsByTagName('language')->item(0); /** @var $codeNode \DOMElement */ $codeNode = $languageNode->getElementsByTagName('code')->item(0); /** @var $vendorNode \DOMElement */ $vendorNode = $languageNode->getElementsByTagName('vendor')->item(0); /** @var $packageNode \DOMElement */ $packageNode = $languageNode->getElementsByTagName('package')->item(0); /** @var $sortOrderNode \DOMElement */ $sortOrderNode = $languageNode->getElementsByTagName('sort_order')->item(0); $use = []; /** @var $useNode \DOMElement */ foreach ($languageNode->getElementsByTagName('use') as $useNode) { $use[] = [ 'vendor' => $useNode->getAttribute('vendor'), 'package' => $useNode->getAttribute('package'), ]; } return [ 'code' => $codeNode->nodeValue, 'vendor' => $vendorNode->nodeValue, 'package' => $packageNode->nodeValue, 'sort_order' => $sortOrderNode ? $sortOrderNode->nodeValue : 0, 'use' => $use ]; } /** * Language code * * @return string */ public function getCode() { return $this->_data['code']; } /** * Language vendor * * @return string */ public function getVendor() { return $this->_data['vendor']; } /** * Language package * * @return string */ public function getPackage() { return $this->_data['package']; } /** * Sort order * * @return null|int */ public function getSortOrder() { return $this->_data['sort_order']; } /** * Declaration of Inheritances * * @return string[][] */ public function getUses() { return $this->_data['use']; } }