15 use Magento\Store\Model\ResourceModel\Store\AllStoresCollectionFactory;
17 use Magento\Store\Model\ResourceModel\Website\AllWebsitesCollection;
18 use Magento\Store\Model\ResourceModel\Website\AllWebsitesCollectionFactory;
33 private $resourceConnection;
38 private $storeData = [];
43 private $websiteData = [];
48 private $storeResource;
53 private $websiteResource;
58 private $deploymentConfig;
76 $this->scopes = $scopes;
78 $this->storeResource = $storeResource;
79 $this->websiteResource = $websiteResource;
88 if ($this->deploymentConfig->isDbAvailable()) {
89 $this->storeData = $this->storeResource->readAllStores();
90 $this->websiteData = $this->websiteResource->readAllWebsites();
92 $this->storeData = $this->scopes->get(
'stores');
93 $this->websiteData = $this->scopes->get(
'websites');
96 $defaultConfig = isset(
$data[
'default']) ?
$data[
'default'] : [];
98 'default' => $defaultConfig,
103 $websitesConfig = isset(
$data[
'websites']) ?
$data[
'websites'] : [];
104 $result[
'websites'] = $this->prepareWebsitesConfig($defaultConfig, $websitesConfig);
106 $storesConfig = isset(
$data[
'stores']) ?
$data[
'stores'] : [];
107 $result[
'stores'] = $this->prepareStoresConfig($defaultConfig, $websitesConfig, $storesConfig);
119 private function prepareWebsitesConfig(
120 array $defaultConfig,
121 array $websitesConfig
124 foreach ((array)$this->websiteData as
$website) {
142 private function prepareStoresConfig(
143 array $defaultConfig,
144 array $websitesConfig,
149 foreach ((array)$this->storeData as
$store) {
153 if (isset(
$store[
'website_id'])) {
172 foreach ((array)$this->websiteData as
$website) {
__construct(Scopes $scopes, ResourceConnection $resourceConnection, Store $storeResource, Website $websiteResource, DeploymentConfig $deploymentConfig)