mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
66 lines
2.1 KiB
PHP
66 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Analytics\Model\Config;
|
|
|
|
/**
|
|
* Transforms Analytics configuration data.
|
|
*/
|
|
class Mapper
|
|
{
|
|
/**
|
|
* Transforms Analytics configuration data.
|
|
*
|
|
* @param array $configData
|
|
* @return array $files
|
|
* $files = [
|
|
* 'file_name' => [
|
|
* 'name' => 'file_name',
|
|
* 'providers' => [
|
|
* 'reportProvider' => [
|
|
* 'name' => 'report_provider_name',
|
|
* 'class' => 'Magento\Analytics\ReportXml\ReportProvider',
|
|
* 'parameters' =>[
|
|
* 'name' => 'report_name',
|
|
* ],
|
|
* ],
|
|
* 'customProvider' => [
|
|
* 'name' => 'custom_provider_name',
|
|
* 'class' => 'Magento\Analytics\Model\CustomProvider',
|
|
* ],
|
|
* ],
|
|
* ]
|
|
* ];
|
|
*/
|
|
public function execute($configData)
|
|
{
|
|
if (!isset($configData['config'][0]['file'])) {
|
|
return [];
|
|
}
|
|
|
|
$files = [];
|
|
foreach ($configData['config'][0]['file'] as $fileData) {
|
|
/** just one set of providers is allowed by xsd */
|
|
$providers = reset($fileData['providers']);
|
|
foreach ($providers as $providerType => $providerDataSet) {
|
|
/** just one set of provider data is allowed by xsd */
|
|
$providerData = reset($providerDataSet);
|
|
/** just one set of parameters is allowed by xsd */
|
|
$providerData['parameters'] = !empty($providerData['parameters'])
|
|
? reset($providerData['parameters'])
|
|
: [];
|
|
array_walk($providerData['parameters'], function (&$array) {
|
|
$array = reset($array);
|
|
});
|
|
$providers[$providerType] = $providerData;
|
|
}
|
|
$files[$fileData['name']] = $fileData;
|
|
$files[$fileData['name']]['providers'] = $providers;
|
|
}
|
|
return $files;
|
|
}
|
|
}
|