Move PConfig to strategies

This commit is contained in:
Philipp 2023-07-23 03:19:38 +02:00
parent 58f56c7d7d
commit 8ed94037d5
No known key found for this signature in database
GPG key ID: 24A7501396EB5432
2 changed files with 10 additions and 17 deletions

View file

@ -22,28 +22,16 @@
namespace Friendica\Core\PConfig\Factory;
use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\Hooks\Capabilities\ICanCreateInstances;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\PConfig\Repository;
use Friendica\Core\PConfig\Type;
use Friendica\Core\PConfig\ValueObject;
class PConfig
{
/**
* @param IManageConfigValues $config The config
* @param ValueObject\Cache $pConfigCache The personal config cache
* @param Repository\PConfig $configRepo The configuration model
*
* @return IManagePersonalConfigValues
*/
public function create(IManageConfigValues $config, ValueObject\Cache $pConfigCache, Repository\PConfig $configRepo): IManagePersonalConfigValues
public function create(ICanCreateInstances $instanceCreator, IManageConfigValues $config): IManagePersonalConfigValues
{
if ($config->get('system', 'config_adapter') === 'preload') {
$configuration = new Type\PreloadPConfig($pConfigCache, $configRepo);
} else {
$configuration = new Type\JitPConfig($pConfigCache, $configRepo);
}
$strategy = $config->get('system', 'config_adapter');
return $configuration;
/** @var IManagePersonalConfigValues */
return $instanceCreator->create(IManagePersonalConfigValues::class, $strategy);
}
}