42 private $defaultConfigValues = [
43 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SERVER =>
'127.0.0.1',
44 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE =>
'1',
45 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PORT =>
'6379',
46 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_COMPRESS_DATA =>
'0',
47 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PASSWORD =>
'' 53 private $validPageCacheOptions = [
60 private $inputKeyToConfigPathMap = [
71 private $redisValidator;
80 $this->redisValidator = $redisValidator;
90 self::INPUT_KEY_PAGE_CACHE_BACKEND,
92 $this->validPageCacheOptions,
93 self::CONFIG_PATH_PAGE_CACHE_BACKEND,
94 'Default cache handler' 97 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SERVER,
99 self::CONFIG_PATH_PAGE_CACHE_BACKEND_SERVER,
103 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE,
105 self::CONFIG_PATH_PAGE_CACHE_BACKEND_DATABASE,
106 'Database number for the cache' 109 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PORT,
111 self::CONFIG_PATH_PAGE_CACHE_BACKEND_PORT,
112 'Redis server listen port' 115 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_COMPRESS_DATA,
117 self::CONFIG_PATH_PAGE_CACHE_BACKEND_COMPRESS_DATA,
118 'Set to 1 to compress the full page cache (use 0 to disable)' 121 self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PASSWORD,
123 self::CONFIG_PATH_PAGE_CACHE_BACKEND_PASSWORD,
124 'Redis server password' 136 if (isset(
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND])) {
137 if (
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND] == self::INPUT_VALUE_PAGE_CACHE_REDIS) {
138 $configData->set(self::CONFIG_PATH_PAGE_CACHE_BACKEND, self::CONFIG_VALUE_PAGE_CACHE_REDIS);
141 $configData->set(self::CONFIG_PATH_PAGE_CACHE_BACKEND,
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND]);
145 foreach ($this->inputKeyToConfigPathMap as $inputKey => $configPath) {
162 if (isset(
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND])) {
163 if (
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND] == self::INPUT_VALUE_PAGE_CACHE_REDIS) {
165 $errors[] =
'Invalid Redis configuration. Could not connect to Redis server.';
168 }
elseif ($currentCacheBackend == self::CONFIG_VALUE_PAGE_CACHE_REDIS) {
170 $errors[] =
'Invalid Redis configuration. Could not connect to Redis server.';
174 if (isset(
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND])
175 && !in_array(
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND], $this->validPageCacheOptions)
177 $errors[] =
"Invalid cache handler '{$options[self::INPUT_KEY_PAGE_CACHE_BACKEND]}'";
194 $config[
'host'] = isset(
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SERVER])
197 self::CONFIG_PATH_PAGE_CACHE_BACKEND_SERVER,
198 $this->getDefaultConfigValue(self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SERVER)
201 $config[
'port'] = isset(
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PORT])
204 self::CONFIG_PATH_PAGE_CACHE_BACKEND_PORT,
205 $this->getDefaultConfigValue(self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PORT)
208 $config[
'db'] = isset(
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE])
211 self::CONFIG_PATH_PAGE_CACHE_BACKEND_DATABASE,
212 $this->getDefaultConfigValue(self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE)
215 $config[
'password'] = isset(
$options[self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PASSWORD])
218 self::CONFIG_PATH_PAGE_CACHE_BACKEND_PASSWORD,
219 $this->getDefaultConfigValue(self::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PASSWORD)
222 return $this->redisValidator->isValidConnection(
$config);
234 foreach ($this->inputKeyToConfigPathMap as $inputKey => $configPath) {
247 private function getDefaultConfigValue($inputKey)
249 if (isset($this->defaultConfigValues[$inputKey])) {
250 return $this->defaultConfigValues[$inputKey];
elseif(isset( $params[ 'redirect_parent']))
const FRONTEND_WIZARD_TEXT
const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SERVER
const CONFIG_VALUE_PAGE_CACHE_REDIS
const CONFIG_PATH_PAGE_CACHE_BACKEND_SERVER
const CONFIG_PATH_PAGE_CACHE_BACKEND_DATABASE
const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PASSWORD
const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE
const INPUT_VALUE_PAGE_CACHE_REDIS
const INPUT_KEY_PAGE_CACHE_BACKEND
__construct(RedisConnectionValidator $redisValidator)
const CONFIG_PATH_PAGE_CACHE_BACKEND
const CONFIG_PATH_PAGE_CACHE_BACKEND_PASSWORD
validate(array $options, DeploymentConfig $deploymentConfig)
const CONFIG_PATH_PAGE_CACHE_BACKEND_PORT
const FRONTEND_WIZARD_SELECT
const CONFIG_PATH_PAGE_CACHE_BACKEND_COMPRESS_DATA
const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_COMPRESS_DATA
const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PORT
createConfig(array $options, DeploymentConfig $deploymentConfig)