1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
<?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;
/**
* Get all dynamic default declarations.
* @see DynamicDefaultValues.
*
* @return array<string,array>
*/
public function getDynamicDefaults(): array;
/**
* Check if the $key has a default value set in the schema.
*
* @param string $key
*
* @return bool
*/
public function hasDefaultFor( string $key ): bool;
/**
* Get the 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;
}
|