Skip to content

Commit 1091b3e

Browse files
MAGETWO-61778: Implement config:set command
1 parent e292e5f commit 1091b3e

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

app/code/Magento/Config/Console/Command/ConfigSet/LockProcessor.php

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
use Magento\Framework\App\Config\ConfigPathResolver;
1313
use Magento\Framework\App\Config\Value;
1414
use Magento\Framework\App\Config\ValueFactory;
15-
use Magento\Framework\App\DeploymentConfig\Writer;
15+
use Magento\Framework\App\DeploymentConfig;
1616
use Magento\Framework\Config\File\ConfigFilePool;
1717
use Magento\Framework\Exception\CouldNotSaveException;
1818
use Magento\Framework\Exception\FileSystemException;
@@ -28,7 +28,12 @@
2828
class LockProcessor implements ConfigSetProcessorInterface
2929
{
3030
/**
31-
* @var Writer
31+
* @var DeploymentConfig
32+
*/
33+
private $deploymentConfig;
34+
35+
/**
36+
* @var DeploymentConfig\Writer
3237
*/
3338
private $deploymentConfigWriter;
3439

@@ -53,19 +58,22 @@ class LockProcessor implements ConfigSetProcessorInterface
5358
private $configValueFactory;
5459

5560
/**
56-
* @param Writer $writer
61+
* @param DeploymentConfig $deploymentConfig
62+
* @param DeploymentConfig\Writer $writer
5763
* @param ArrayManager $arrayManager
5864
* @param ConfigPathResolver $configPathResolver
5965
* @param Structure $configStructure
6066
* @param ValueFactory $configValueFactory
6167
*/
6268
public function __construct(
63-
Writer $writer,
69+
DeploymentConfig $deploymentConfig,
70+
DeploymentConfig\Writer $writer,
6471
ArrayManager $arrayManager,
6572
ConfigPathResolver $configPathResolver,
6673
Structure $configStructure,
6774
ValueFactory $configValueFactory
6875
) {
76+
$this->deploymentConfig = $deploymentConfig;
6977
$this->deploymentConfigWriter = $writer;
7078
$this->arrayManager = $arrayManager;
7179
$this->configPathResolver = $configPathResolver;
@@ -88,9 +96,11 @@ public function process(InputInterface $input)
8896
$configPath = $this->configPathResolver->resolve($path, $scope, $scopeCode, System::CONFIG_TYPE);
8997

9098
/** @var Field $field */
91-
$field = $this->configStructure->getElement($path);
99+
$field = $this->deploymentConfig->isAvailable()
100+
? $this->configStructure->getElement($path)
101+
: null;
92102
/** @var Value $backendModel */
93-
$backendModel = $field->hasBackendModel()
103+
$backendModel = $field && $field->hasBackendModel()
94104
? $field->getBackendModel()
95105
: $this->configValueFactory->create();
96106

app/code/Magento/Store/Model/Config/Processor/Fallback.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public function process(array $data)
6060
private function prepareWebsitesConfig(array $defaultConfig, array $websitesConfig)
6161
{
6262
$result = [];
63-
foreach ($this->scopes->get('websites') as $websiteData) {
63+
foreach ((array)$this->scopes->get('websites') as $websiteData) {
6464
$code = $websiteData['code'];
6565
$id = $websiteData['website_id'];
6666
$websiteConfig = isset($websitesConfig[$code]) ? $websitesConfig[$code] : [];
@@ -81,7 +81,7 @@ private function prepareWebsitesConfig(array $defaultConfig, array $websitesConf
8181
private function prepareStoresConfig(array $defaultConfig, array $websitesConfig, array $storesConfig)
8282
{
8383
$result = [];
84-
foreach ($this->scopes->get('stores') as $storeData) {
84+
foreach ((array)$this->scopes->get('stores') as $storeData) {
8585
$code = $storeData['code'];
8686
$id = $storeData['store_id'];
8787
$websiteConfig = [];

0 commit comments

Comments
 (0)