|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / vendor / magento / framework / Config / |
Filename | /home/dev2.destoffenstraat.com/vendor/magento/framework/Config/View.php |
Size | 5.17 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 07-Jan-2021 21:08 |
Last accessed | 23-Aug-2025 03:56 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Config;
/**
* View configuration files handler
*
* @api
* @since 100.0.2
*/
class View extends \Magento\Framework\Config\Reader\Filesystem
{
/**
* @var array
*/
protected $xpath;
/**
* View config data
*
* @var array
*/
protected $data;
/**
* @param FileResolverInterface $fileResolver
* @param ConverterInterface $converter
* @param SchemaLocatorInterface $schemaLocator
* @param ValidationStateInterface $validationState
* @param string $fileName
* @param array $idAttributes
* @param string $domDocumentClass
* @param string $defaultScope
* @param array $xpath
*/
public function __construct(
FileResolverInterface $fileResolver,
ConverterInterface $converter,
SchemaLocatorInterface $schemaLocator,
ValidationStateInterface $validationState,
$fileName,
$idAttributes = [],
$domDocumentClass = \Magento\Framework\Config\Dom::class,
$defaultScope = 'global',
$xpath = []
) {
$this->xpath = $xpath;
$idAttributes = $this->getIdAttributes();
parent::__construct(
$fileResolver,
$converter,
$schemaLocator,
$validationState,
$fileName,
$idAttributes,
$domDocumentClass,
$defaultScope
);
}
/**
* Get a list of variables in scope of specified module
*
* Returns array(<var_name> => <var_value>)
*
* @param string $module
* @return array
*/
public function getVars($module)
{
$this->initData();
return $this->data['vars'][$module] ?? [];
}
/**
* Get value of a configuration option variable
*
* @param string $module
* @param string $var
* @return string|false|array
*/
public function getVarValue($module, $var)
{
$this->initData();
if (!isset($this->data['vars'][$module])) {
return false;
}
$value = $this->data['vars'][$module];
foreach (explode('/', $var) as $node) {
if (is_array($value) && isset($value[$node])) {
$value = $value[$node];
} else {
return false;
}
}
return $value;
}
/**
* Retrieve a list media attributes in scope of specified module
*
* @param string $module
* @param string $mediaType
* @return array
*/
public function getMediaEntities($module, $mediaType)
{
$this->initData();
return $this->data['media'][$module][$mediaType] ?? [];
}
/**
* Retrieve array of media attributes
*
* @param string $module
* @param string $mediaType
* @param string $mediaId
* @return array
*/
public function getMediaAttributes($module, $mediaType, $mediaId)
{
$this->initData();
return $this->data['media'][$module][$mediaType][$mediaId] ?? [];
}
/**
* Variables are identified by module and name
*
* @return array
*/
protected function getIdAttributes()
{
$idAttributes = [
'/view/vars' => 'module',
'/view/vars/(var/)*var' => 'name',
'/view/exclude/item' => ['type', 'item'],
];
foreach ($this->xpath as $attribute) {
if (is_array($attribute)) {
foreach ($attribute as $key => $id) {
if (count($id) > 1) {
$idAttributes[$key] = array_values($id);
} else {
$idAttributes[$key] = array_shift($id);
}
}
}
}
return $idAttributes;
}
/**
* Get excluded file list
*
* @return array
*/
public function getExcludedFiles()
{
$items = $this->getItems();
return $items['file'] ?? [];
}
/**
* Get excluded directory list
*
* @return array
*/
public function getExcludedDir()
{
$items = $this->getItems();
return $items['directory'] ?? [];
}
/**
* Get a list of excludes
*
* @return array
*/
protected function getItems()
{
$this->initData();
return $this->data['exclude'] ?? [];
}
/**
* Initialize data array
*
* @return void
*/
protected function initData()
{
if ($this->data === null) {
$this->data = $this->read();
}
}
/**
* {@inheritdoc}
* @since 100.1.0
*/
public function read($scope = null)
{
$scope = $scope ?: $this->_defaultScope;
$result = [];
$parents = (array)$this->_fileResolver->getParents($this->_fileName, $scope);
// Sort parents desc
krsort($parents);
foreach ($parents as $parent) {
$result = array_replace_recursive($result, $this->_readFiles([$parent]));
}
return array_replace_recursive($result, parent::read($scope));
}
}
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Config;
/**
* View configuration files handler
*
* @api
* @since 100.0.2
*/
class View extends \Magento\Framework\Config\Reader\Filesystem
{
/**
* @var array
*/
protected $xpath;
/**
* View config data
*
* @var array
*/
protected $data;
/**
* @param FileResolverInterface $fileResolver
* @param ConverterInterface $converter
* @param SchemaLocatorInterface $schemaLocator
* @param ValidationStateInterface $validationState
* @param string $fileName
* @param array $idAttributes
* @param string $domDocumentClass
* @param string $defaultScope
* @param array $xpath
*/
public function __construct(
FileResolverInterface $fileResolver,
ConverterInterface $converter,
SchemaLocatorInterface $schemaLocator,
ValidationStateInterface $validationState,
$fileName,
$idAttributes = [],
$domDocumentClass = \Magento\Framework\Config\Dom::class,
$defaultScope = 'global',
$xpath = []
) {
$this->xpath = $xpath;
$idAttributes = $this->getIdAttributes();
parent::__construct(
$fileResolver,
$converter,
$schemaLocator,
$validationState,
$fileName,
$idAttributes,
$domDocumentClass,
$defaultScope
);
}
/**
* Get a list of variables in scope of specified module
*
* Returns array(<var_name> => <var_value>)
*
* @param string $module
* @return array
*/
public function getVars($module)
{
$this->initData();
return $this->data['vars'][$module] ?? [];
}
/**
* Get value of a configuration option variable
*
* @param string $module
* @param string $var
* @return string|false|array
*/
public function getVarValue($module, $var)
{
$this->initData();
if (!isset($this->data['vars'][$module])) {
return false;
}
$value = $this->data['vars'][$module];
foreach (explode('/', $var) as $node) {
if (is_array($value) && isset($value[$node])) {
$value = $value[$node];
} else {
return false;
}
}
return $value;
}
/**
* Retrieve a list media attributes in scope of specified module
*
* @param string $module
* @param string $mediaType
* @return array
*/
public function getMediaEntities($module, $mediaType)
{
$this->initData();
return $this->data['media'][$module][$mediaType] ?? [];
}
/**
* Retrieve array of media attributes
*
* @param string $module
* @param string $mediaType
* @param string $mediaId
* @return array
*/
public function getMediaAttributes($module, $mediaType, $mediaId)
{
$this->initData();
return $this->data['media'][$module][$mediaType][$mediaId] ?? [];
}
/**
* Variables are identified by module and name
*
* @return array
*/
protected function getIdAttributes()
{
$idAttributes = [
'/view/vars' => 'module',
'/view/vars/(var/)*var' => 'name',
'/view/exclude/item' => ['type', 'item'],
];
foreach ($this->xpath as $attribute) {
if (is_array($attribute)) {
foreach ($attribute as $key => $id) {
if (count($id) > 1) {
$idAttributes[$key] = array_values($id);
} else {
$idAttributes[$key] = array_shift($id);
}
}
}
}
return $idAttributes;
}
/**
* Get excluded file list
*
* @return array
*/
public function getExcludedFiles()
{
$items = $this->getItems();
return $items['file'] ?? [];
}
/**
* Get excluded directory list
*
* @return array
*/
public function getExcludedDir()
{
$items = $this->getItems();
return $items['directory'] ?? [];
}
/**
* Get a list of excludes
*
* @return array
*/
protected function getItems()
{
$this->initData();
return $this->data['exclude'] ?? [];
}
/**
* Initialize data array
*
* @return void
*/
protected function initData()
{
if ($this->data === null) {
$this->data = $this->read();
}
}
/**
* {@inheritdoc}
* @since 100.1.0
*/
public function read($scope = null)
{
$scope = $scope ?: $this->_defaultScope;
$result = [];
$parents = (array)$this->_fileResolver->getParents($this->_fileName, $scope);
// Sort parents desc
krsort($parents);
foreach ($parents as $parent) {
$result = array_replace_recursive($result, $this->_readFiles([$parent]));
}
return array_replace_recursive($result, parent::read($scope));
}
}