mirror of
https://github.com/shlinkio/shlink.git
synced 2024-11-27 08:18:24 +03:00
Updated SimplifiedConfigParser so that it properly converts the redis_servers keys and aliases the store as a side effect
This commit is contained in:
parent
73fd348490
commit
6b8ca3e611
3 changed files with 33 additions and 12 deletions
|
@ -26,5 +26,5 @@ return (new ConfigAggregator\ConfigAggregator([
|
|||
? new ConfigAggregator\PhpFileProvider('config/test/*.global.php')
|
||||
: new ConfigAggregator\ZendConfigProvider('config/params/{generated_config.php,*.config.{php,json}}'),
|
||||
], 'data/cache/app_config.php', [
|
||||
Core\ConfigPostProcessor::class,
|
||||
Core\SimplifiedConfigParser::class,
|
||||
]))->getMergedConfig();
|
||||
|
|
|
@ -11,7 +11,7 @@ use function array_key_exists;
|
|||
use function Functional\contains;
|
||||
use function Functional\reduce_left;
|
||||
|
||||
class ConfigPostProcessor
|
||||
class SimplifiedConfigParser
|
||||
{
|
||||
private const SIMPLIFIED_CONFIG_MAPPING = [
|
||||
'disable_track_param' => ['app_options', 'disable_track_param'],
|
||||
|
@ -22,11 +22,21 @@ class ConfigPostProcessor
|
|||
'db_config' => ['entity_manager', 'connection'],
|
||||
'delete_short_url_threshold' => ['delete_short_urls', 'visits_threshold'],
|
||||
'locale' => ['translator', 'locale'],
|
||||
'lock_store' => ['dependencies', 'aliases', 'lock_store'],
|
||||
'redis_servers' => ['redis', 'servers'],
|
||||
];
|
||||
private const SIMPLIFIED_CONFIG_TOGGLES = [
|
||||
'not_found_redirect_to' => ['url_shortener', 'not_found_short_url', 'enable_redirection'],
|
||||
'delete_short_url_threshold' => ['delete_short_urls', 'check_visits_threshold'],
|
||||
private const SIMPLIFIED_CONFIG_SIDE_EFFECTS = [
|
||||
'not_found_redirect_to' => [
|
||||
'path' => ['url_shortener', 'not_found_short_url', 'enable_redirection'],
|
||||
'value' => true,
|
||||
],
|
||||
'delete_short_url_threshold' => [
|
||||
'path' => ['delete_short_urls', 'check_visits_threshold'],
|
||||
'value' => true,
|
||||
],
|
||||
'redis_servers' => [
|
||||
'path' => ['dependencies', 'aliases', 'lock_store'],
|
||||
'value' => 'redis_lock_store',
|
||||
],
|
||||
];
|
||||
private const SIMPLIFIED_MERGEABLE_CONFIG = ['db_config'];
|
||||
|
||||
|
@ -41,8 +51,9 @@ class ConfigPostProcessor
|
|||
}
|
||||
|
||||
$collection->setValueInPath($value, $path);
|
||||
if (array_key_exists($key, self::SIMPLIFIED_CONFIG_TOGGLES)) {
|
||||
$collection->setValueInPath(true, self::SIMPLIFIED_CONFIG_TOGGLES[$key]);
|
||||
if (array_key_exists($key, self::SIMPLIFIED_CONFIG_SIDE_EFFECTS)) {
|
||||
['path' => $sideEffectPath, 'value' => $sideEffectValue] = self::SIMPLIFIED_CONFIG_SIDE_EFFECTS[$key];
|
||||
$collection->setValueInPath($sideEffectValue, $sideEffectPath);
|
||||
}
|
||||
|
||||
return $collection;
|
|
@ -4,17 +4,17 @@ declare(strict_types=1);
|
|||
namespace ShlinkioTest\Shlink\Core;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Shlinkio\Shlink\Core\ConfigPostProcessor;
|
||||
use Shlinkio\Shlink\Core\SimplifiedConfigParser;
|
||||
|
||||
use function array_merge;
|
||||
|
||||
class ConfigPostProcessorTest extends TestCase
|
||||
class SimplifiedConfigParserTest extends TestCase
|
||||
{
|
||||
private $postProcessor;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
$this->postProcessor = new ConfigPostProcessor();
|
||||
$this->postProcessor = new SimplifiedConfigParser();
|
||||
}
|
||||
|
||||
/** @test */
|
||||
|
@ -41,7 +41,10 @@ class ConfigPostProcessorTest extends TestCase
|
|||
'delete_short_url_threshold' => 50,
|
||||
'locale' => 'es',
|
||||
'not_found_redirect_to' => 'foobar.com',
|
||||
'lock_store' => 'redis_lock_store',
|
||||
'redis_servers' => [
|
||||
'tcp://1.1.1.1:1111',
|
||||
'tcp://1.2.2.2:2222',
|
||||
],
|
||||
'db_config' => [
|
||||
'dbname' => 'shlink',
|
||||
'user' => 'foo',
|
||||
|
@ -91,6 +94,13 @@ class ConfigPostProcessorTest extends TestCase
|
|||
'lock_store' => 'redis_lock_store',
|
||||
],
|
||||
],
|
||||
|
||||
'redis' => [
|
||||
'servers' => [
|
||||
'tcp://1.1.1.1:1111',
|
||||
'tcp://1.2.2.2:2222',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
$result = ($this->postProcessor)(array_merge($config, $simplified));
|
Loading…
Reference in a new issue