File: D:/web/matomo.vdk/core/Settings/Interfaces/Traits/Getters/ConfigGetterTrait.php
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Settings\Interfaces\Traits\Getters;
use Piwik\Config;
use Piwik\Settings\Interfaces\ConfigSettingInterface;
/**
* @template T of mixed
*
* @phpstan-require-implements ConfigSettingInterface
*/
trait ConfigGetterTrait
{
/**
* @return T|null
*/
public static function getConfigValue(?int $idSite = null)
{
$configKey = self::getConfigSection();
if ($idSite !== null) {
$configKey .= '_' . $idSite;
}
$config = Config::getInstance()->{$configKey};
if (is_null($config) || !array_key_exists(self::getConfigSettingName(), $config)) {
return null;
}
return $config[self::getConfigSettingName()];
}
abstract protected static function getConfigSection(): string;
abstract protected static function getConfigSettingName(): string;
/**
* @deprecated Will be removed in 6.0 in favour of making getConfigSettingName public
*/
public static function getConfigSettingShortName(): string
{
return self::getConfigSettingName();
}
}