Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
StoreConfigManager.php
Go to the documentation of this file.
1 <?php
7 
9 {
14 
19 
25  protected $scopeConfig;
26 
32  protected $configPaths = [
33  'setLocale' => 'general/locale/code',
34  'setBaseCurrencyCode' => 'currency/options/base',
35  'setDefaultDisplayCurrencyCode' => 'currency/options/default',
36  'setTimezone' => 'general/locale/timezone',
38  ];
39 
45  public function __construct(
46  \Magento\Store\Model\ResourceModel\Store\CollectionFactory $storeCollectionFactory,
48  \Magento\Store\Model\Data\StoreConfigFactory $storeConfigFactory
49  ) {
50  $this->storeCollectionFactory = $storeCollectionFactory;
51  $this->scopeConfig = $scopeConfig;
52  $this->storeConfigFactory = $storeConfigFactory;
53  }
54 
59  public function getStoreConfigs(array $storeCodes = null)
60  {
61  $storeConfigs = [];
62  $storeCollection = $this->storeCollectionFactory->create();
63  if ($storeCodes != null) {
64  $storeCollection->addFieldToFilter('code', ['in' => $storeCodes]);
65  }
66 
67  foreach ($storeCollection->load() as $item) {
68  $storeConfigs[] = $this->getStoreConfig($item);
69  }
70  return $storeConfigs;
71  }
72 
77  protected function getStoreConfig($store)
78  {
80  $storeConfig = $this->storeConfigFactory->create();
81 
82  $storeConfig->setId($store->getId())
83  ->setCode($store->getCode())
84  ->setWebsiteId($store->getWebsiteId());
85 
86  foreach ($this->configPaths as $methodName => $configPath) {
87  $configValue = $this->scopeConfig->getValue(
88  $configPath,
90  $store->getCode()
91  );
92  $storeConfig->$methodName($configValue);
93  }
94 
95  $storeConfig->setBaseUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB, false));
96  $storeConfig->setSecureBaseUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB, true));
97  $storeConfig->setBaseLinkUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK, false));
98  $storeConfig->setSecureBaseLinkUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK, true));
99  $storeConfig->setBaseStaticUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_STATIC, false));
100  $storeConfig->setSecureBaseStaticUrl(
101  $store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_STATIC, true)
102  );
103  $storeConfig->setBaseMediaUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, false));
104  $storeConfig->setSecureBaseMediaUrl(
105  $store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, true)
106  );
107  return $storeConfig;
108  }
109 }
__construct(\Magento\Store\Model\ResourceModel\Store\CollectionFactory $storeCollectionFactory, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Store\Model\Data\StoreConfigFactory $storeConfigFactory)
if($product->getId()) catch(\Magento\Framework\Exception\NoSuchEntityException $e) $storeCodes