83 lines
2.7 KiB
PHP
83 lines
2.7 KiB
PHP
<?php
|
|
/**
|
|
* For the full copyright and license information, please view the
|
|
* docs/licenses/LICENSE.txt file that was distributed with this source code.
|
|
*/
|
|
$parametersFilepath = __DIR__ . '/parameters.php';
|
|
if (file_exists($parametersFilepath)) {
|
|
$parameters = require $parametersFilepath;
|
|
} else {
|
|
// When no parameters file is present (before install) we define null values for mandatory parameters to avoid breaking the CI
|
|
$parameters = [
|
|
'parameters' => [
|
|
'secret' => 'secret',
|
|
'locale' => 'en',
|
|
'database_host' => '',
|
|
'database_port' => null,
|
|
'database_name' => '',
|
|
'database_user' => '',
|
|
'database_password' => '',
|
|
'database_prefix' => 'ps_',
|
|
'api_private_key' => null,
|
|
'api_public_key' => null,
|
|
'cookie_key' => '',
|
|
'new_cookie_key' => null,
|
|
'ps_cache_enable' => null,
|
|
'ps_caching' => null,
|
|
],
|
|
];
|
|
}
|
|
|
|
if (!array_key_exists('parameters', $parameters)) {
|
|
throw new Exception('Missing "parameters" key in "parameters.php" configuration file');
|
|
}
|
|
|
|
if (!defined('_PS_IN_TEST_') && isset($_SERVER['argv'])) {
|
|
$input = new Symfony\Component\Console\Input\ArgvInput();
|
|
$env = $input->getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev');
|
|
|
|
if ($env === 'test') {
|
|
define('_PS_IN_TEST_', 1);
|
|
}
|
|
}
|
|
|
|
if (isset($container) && $container instanceof Symfony\Component\DependencyInjection\Container) {
|
|
foreach ($parameters['parameters'] as $key => $value) {
|
|
$container->setParameter($key, $value);
|
|
}
|
|
|
|
$driver = 'array';
|
|
$cacheType = [
|
|
'CacheMemcached' => ['memcached'],
|
|
'CacheApc' => ['apcu'],
|
|
];
|
|
$adapters = [
|
|
'array' => 'cache.adapter.array',
|
|
'memcached' => 'cache.adapter.memcached',
|
|
'apcu' => 'cache.adapter.apcu',
|
|
];
|
|
|
|
if (isset(
|
|
$parameters['parameters']['ps_cache_enable'],
|
|
$parameters['parameters']['ps_caching'],
|
|
$cacheType[$parameters['parameters']['ps_caching']]
|
|
)
|
|
&& true === $parameters['parameters']['ps_cache_enable']
|
|
) {
|
|
foreach ($cacheType[$parameters['parameters']['ps_caching']] as $type) {
|
|
if (extension_loaded($type)) {
|
|
$driver = $type;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
$container->setParameter('cache.driver', $driver);
|
|
$container->setParameter('cache.adapter', $adapters[$driver]);
|
|
|
|
// Parameter used only in dev and test env
|
|
$envParameter = getenv('DISABLE_DEBUG_TOOLBAR');
|
|
if (!isset($parameters['parameters']['use_debug_toolbar']) || false !== $envParameter) {
|
|
$container->setParameter('use_debug_toolbar', !$envParameter);
|
|
}
|
|
}
|