A `SettingsSource` is meant to represent any kind of local or remote store from which settings can be read, be this a local file, remote URL, database, etc. It is concerned with reading in (and possibly decoding) settings data, and computing a consistent hash key that may be used in caching. A `SettingsFormat` is meant to detect supported file types and/or decode source contents into settings arrays. As of now, JSON is the only supported format but others may be implemented. `FileSource` is the first source implementation, with its default format being JSON, meant to read settings from local JSON files. `ArraySource` is mostly useful for testing using array literals. Refactored `SettingsBuilder` methods to use the new source abstractions. Bug: T295499 Change-Id: If7869609c4ad1ccd0894d5ba358f885007168972
25 lines
645 B
PHP
25 lines
645 B
PHP
<?php
|
|
|
|
namespace MediaWiki\Settings\Source;
|
|
|
|
use MediaWiki\Settings\SettingsBuilderException;
|
|
use Stringable;
|
|
|
|
/**
|
|
* A SettingsSource is meant to represent any kind of local or remote store
|
|
* from which settings can be read, be it a local file, remote URL, database,
|
|
* etc. It is concerned with reading (and possibly decoding) settings data.
|
|
*
|
|
* @since 1.38
|
|
* @todo mark as stable before the 1.38 release
|
|
*/
|
|
interface SettingsSource extends Stringable {
|
|
/**
|
|
* Loads and returns all settings from this source as an associative
|
|
* array.
|
|
*
|
|
* @return array
|
|
* @throws SettingsBuilderException
|
|
*/
|
|
public function load(): array;
|
|
}
|