wiki.techinc.nl/includes/Settings/Source/SettingsSource.php
Dan Duvall 9a4af25664 Introduced settings sources and formats
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
2021-11-15 14:07:59 -08:00

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;
}