wiki.techinc.nl/includes/Settings/Config/ConfigSchema.php
daniel 237bbf089f Turn DefaultSettings.php into a deprecated stub
DefaultSettings.php has been replaced by MainConfigSchema.
Loading DefaultSettings.php is deprecated.

Code that needs to have access to configuration defaults should use the
ConfigSchema service object.

Bug: T300129
Change-Id: I7b2c0ca95a78990be1cdb9dd9ace92f6dcf1af15
2022-05-17 16:50:56 +02:00

65 lines
1.3 KiB
PHP

<?php
namespace MediaWiki\Settings\Config;
use MediaWiki\Settings\SettingsBuilderException;
/**
* Represents a config schema.
*
* @since 1.39
*/
interface ConfigSchema {
/**
* Get a list of all defined keys
*
* @return string[]
*/
public function getDefinedKeys(): array;
/**
* Check whether schema for $key is defined.
*
* @param string $key
*
* @return bool
*/
public function hasSchemaFor( string $key ): bool;
/**
* Get all defined default values.
*
* @return array<string,mixed> An associative array mapping setting names
* to their respective default values.
*/
public function getDefaults(): array;
/**
* Check if the $key has a default values set in the schema.
*
* @param string $key
*
* @return bool
*/
public function hasDefaultFor( string $key ): bool;
/**
* Get default value for the $key.
* For keys that do not define a default, null is assumed.
*
* @param string $key
*
* @return mixed
*/
public function getDefaultFor( string $key );
/**
* Get the merge strategy defined for the $key, or null if none defined.
*
* @param string $key
*
* @return MergeStrategy|null
* @throws SettingsBuilderException if merge strategy name is invalid.
*/
public function getMergeStrategyFor( string $key ): ?MergeStrategy;
}