Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ConfigGenerator.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Setup\Model;
8 
17 
23 {
29  private static $paramMap = [
41  ];
42 
46  protected $deploymentConfig;
47 
52  protected $random;
53 
57  private $configDataFactory;
58 
62  private $cryptKeyGenerator;
63 
72  public function __construct(
75  ConfigDataFactory $configDataFactory = null,
76  CryptKeyGeneratorInterface $cryptKeyGenerator = null
77  ) {
78  $this->random = $random;
79  $this->deploymentConfig = $deploymentConfig;
80  $this->configDataFactory = $configDataFactory ?? ObjectManager::getInstance()->get(ConfigDataFactory::class);
81  $this->cryptKeyGenerator = $cryptKeyGenerator ?? ObjectManager::getInstance()->get(CryptKeyGenerator::class);
82  }
83 
89  public function createCryptConfig(array $data)
90  {
91  $currentKey = $this->deploymentConfig->get(ConfigOptionsListConstants::CONFIG_PATH_CRYPT_KEY);
92 
93  $configData = $this->configDataFactory->create(ConfigFilePool::APP_ENV);
94 
95  // Use given key if set, else use current
97 
98  // If there is no key given or currently set, generate a new one
99  $key = $key ?? $this->cryptKeyGenerator->generate();
100 
101  // Chaining of ".. ?? .." is not used to keep it simpler to understand
102 
104 
105  return $configData;
106  }
107 
114  public function createSessionConfig(array $data)
115  {
116  $configData = $this->configDataFactory->create(ConfigFilePool::APP_ENV);
117 
119  $configData->set(
122  );
123  }
124 
125  return $configData;
126  }
127 
136  public function createDefinitionsConfig(array $data)
137  {
138  return null;
139  }
140 
147  public function createDbConfig(array $data)
148  {
149  $configData = $this->configDataFactory->create(ConfigFilePool::APP_ENV);
150 
151  $optional = [
159  ];
160 
162  $configData->set(
165  );
166  }
167 
169 
170  foreach ($optional as $key) {
171  if (isset($data[$key])) {
172  $configData->set($dbConnectionPrefix . self::$paramMap[$key], $data[$key]);
173  }
174  }
175 
176  $currentStatus = $this->deploymentConfig->get($dbConnectionPrefix . ConfigOptionsListConstants::KEY_ACTIVE);
177 
178  if ($currentStatus === null) {
179  $configData->set($dbConnectionPrefix . ConfigOptionsListConstants::KEY_ACTIVE, '1');
180  }
181 
182  return $configData;
183  }
184 
190  public function createResourceConfig()
191  {
192  $configData = $this->configDataFactory->create(ConfigFilePool::APP_ENV);
193 
194  if ($this->deploymentConfig->get(ConfigOptionsListConstants::CONFIG_PATH_RESOURCE_DEFAULT_SETUP) === null) {
196  }
197 
198  return $configData;
199  }
200 
206  public function createXFrameConfig()
207  {
208  $configData = $this->configDataFactory->create(ConfigFilePool::APP_ENV);
209 
210  if ($this->deploymentConfig->get(ConfigOptionsListConstants::CONFIG_PATH_X_FRAME_OPT) === null) {
212  }
213 
214  return $configData;
215  }
216 
222  public function createModeConfig()
223  {
224  $configData = $this->configDataFactory->create(ConfigFilePool::APP_ENV);
225 
226  if ($this->deploymentConfig->get(State::PARAM_MODE) === null) {
228  }
229 
230  return $configData;
231  }
232 
239  public function createCacheHostsConfig(array $data)
240  {
241  $configData = $this->configDataFactory->create(ConfigFilePool::APP_ENV);
242 
245 
246  $hosts = array_map(
247  function ($hostData) {
248  $hostDataParts = explode(':', trim($hostData));
249 
250  $tmp = ['host' => $hostDataParts[0]];
251 
252  if (isset($hostDataParts[1])) {
253  $tmp['port'] = $hostDataParts[1];
254  }
255 
256  return $tmp;
257  },
258  $hosts
259  );
260 
262  }
263 
264  $configData->setOverrideWhenSave(true);
265  return $configData;
266  }
267 }
__construct(Random $random, DeploymentConfig $deploymentConfig, ConfigDataFactory $configDataFactory=null, CryptKeyGeneratorInterface $cryptKeyGenerator=null)