Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Config.php
Go to the documentation of this file.
1 <?php
8 
10 
14 class Config
15 {
19  protected $urnResolver;
20 
24  protected $domFactory;
25 
31  protected $_data;
32 
41  public function __construct(
42  $source,
44  \Magento\Framework\Config\DomFactory $domFactory
45  ) {
46  $this->urnResolver = $urnResolver;
47  $this->domFactory = $domFactory;
48  $dom = $this->domFactory->createDom(['xml' => $source, 'schemaFile' => $this->getSchemaFile()]);
49  $this->_data = $this->_extractData($dom->getDom());
50  }
51 
57  protected function getSchemaFile()
58  {
59  return $this->urnResolver->getRealPath('urn:magento:framework:App/Language/package.xsd');
60  }
61 
68  protected function _extractData(\DOMDocument $dom)
69  {
71  $languageNode = $dom->getElementsByTagName('language')->item(0);
73  $codeNode = $languageNode->getElementsByTagName('code')->item(0);
75  $vendorNode = $languageNode->getElementsByTagName('vendor')->item(0);
77  $packageNode = $languageNode->getElementsByTagName('package')->item(0);
79  $sortOrderNode = $languageNode->getElementsByTagName('sort_order')->item(0);
80  $use = [];
82  foreach ($languageNode->getElementsByTagName('use') as $useNode) {
83  $use[] = [
84  'vendor' => $useNode->getAttribute('vendor'),
85  'package' => $useNode->getAttribute('package'),
86  ];
87  }
88  return [
89  'code' => $codeNode->nodeValue,
90  'vendor' => $vendorNode->nodeValue,
91  'package' => $packageNode->nodeValue,
92  'sort_order' => $sortOrderNode ? $sortOrderNode->nodeValue : 0,
93  'use' => $use
94  ];
95  }
96 
102  public function getCode()
103  {
104  return $this->_data['code'];
105  }
106 
112  public function getVendor()
113  {
114  return $this->_data['vendor'];
115  }
116 
122  public function getPackage()
123  {
124  return $this->_data['package'];
125  }
126 
132  public function getSortOrder()
133  {
134  return $this->_data['sort_order'];
135  }
136 
142  public function getUses()
143  {
144  return $this->_data['use'];
145  }
146 }
$source
Definition: source.php:23
__construct( $source, \Magento\Framework\Config\Dom\UrnResolver $urnResolver, \Magento\Framework\Config\DomFactory $domFactory)
Definition: Config.php:41