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 |
2 | |
3 | namespace MediaWiki\Settings\Config; |
4 | |
5 | use MediaWiki\Config\Config; |
6 | use MediaWiki\Settings\SettingsBuilderException; |
7 | |
8 | /** |
9 | * Builder for Config objects. |
10 | * |
11 | * @unstable |
12 | */ |
13 | interface ConfigBuilder { |
14 | |
15 | /** |
16 | * Set the configuration $key to $value. |
17 | * |
18 | * @param string $key |
19 | * @param mixed $value |
20 | * @param MergeStrategy|null $mergeStrategy strategy for merging array config values. |
21 | * @return ConfigBuilder |
22 | */ |
23 | public function set( string $key, $value, MergeStrategy $mergeStrategy = null ): ConfigBuilder; |
24 | |
25 | /** |
26 | * Set all values in the array. |
27 | * |
28 | * @param array $values |
29 | * @param MergeStrategy[] $mergeStrategies The merge strategies indexed by config key |
30 | * @return ConfigBuilder |
31 | */ |
32 | public function setMulti( array $values, array $mergeStrategies = [] ): ConfigBuilder; |
33 | |
34 | /** |
35 | * Set the default for the configuration $key to $defaultValue. |
36 | * |
37 | * If the $key is already set, non-array $defaultValue will be ignored, |
38 | * for array $defaultValue the existing value will be merged into it as |
39 | * if the default was already there when the existing value was set. |
40 | * |
41 | * @param string $key |
42 | * @param mixed $defaultValue |
43 | * @param MergeStrategy|null $mergeStrategy strategy for merging array config values. |
44 | * @return ConfigBuilder |
45 | */ |
46 | public function setDefault( string $key, $defaultValue, MergeStrategy $mergeStrategy = null ): ConfigBuilder; |
47 | |
48 | /** |
49 | * Set defaults in a batch. |
50 | * |
51 | * @param array $defaults The default values |
52 | * @param MergeStrategy[] $mergeStrategies The merge strategies indexed by config key |
53 | * @return ConfigBuilder |
54 | * @throws SettingsBuilderException if a merge strategy is not provided and |
55 | * the value is not an array. |
56 | */ |
57 | public function setMultiDefault( array $defaults, array $mergeStrategies ): ConfigBuilder; |
58 | |
59 | /** |
60 | * Get the current value for $key. |
61 | * |
62 | * @param string $key |
63 | * @return mixed |
64 | */ |
65 | public function get( string $key ); |
66 | |
67 | /** |
68 | * Build the resulting Config object. |
69 | * |
70 | * @return Config |
71 | */ |
72 | public function build(): Config; |
73 | } |