Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2namespace MediaWiki\Settings\Config;
3
4use MediaWiki\Settings\SettingsBuilderException;
5
6/**
7 * Represents a config schema.
8 *
9 * @since 1.39
10 */
11interface ConfigSchema {
12
13    /**
14     * Get a list of all defined keys
15     *
16     * @return string[]
17     */
18    public function getDefinedKeys(): array;
19
20    /**
21     * Check whether schema for $key is defined.
22     *
23     * @param string $key
24     *
25     * @return bool
26     */
27    public function hasSchemaFor( string $key ): bool;
28
29    /**
30     * Get all defined default values.
31     *
32     * @return array<string,mixed> An associative array mapping setting names
33     *         to their respective default values.
34     */
35    public function getDefaults(): array;
36
37    /**
38     * Get all dynamic default declarations.
39     * @see DynamicDefaultValues.
40     *
41     * @return array<string,array>
42     */
43    public function getDynamicDefaults(): array;
44
45    /**
46     * Check if the $key has a default value set in the schema.
47     *
48     * @param string $key
49     *
50     * @return bool
51     */
52    public function hasDefaultFor( string $key ): bool;
53
54    /**
55     * Get the default value for the $key.
56     * For keys that do not define a default, null is assumed.
57     *
58     * @param string $key
59     *
60     * @return mixed
61     */
62    public function getDefaultFor( string $key );
63
64    /**
65     * Get the merge strategy defined for the $key, or null if none defined.
66     *
67     * @param string $key
68     *
69     * @return MergeStrategy|null
70     * @throws SettingsBuilderException if merge strategy name is invalid.
71     */
72    public function getMergeStrategyFor( string $key ): ?MergeStrategy;
73}