MediaWiki  master
ExternalStore Class Reference

Constructor class for key/value blob data kept in external repositories. More...

Static Public Member Functions

static batchFetchFromURLs (array $urls)
 Fetch data from multiple URLs with a minimum of round trips. More...
 
static fetchFromURL ( $url, array $params=[])
 Fetch data from given URL. More...
 
static getStoreObject ( $proto, array $params=[])
 Get an external store object of the given type, with the given parameters. More...
 
static insert ( $url, $data, array $params=[])
 Store a data item to an external store, identified by a partial URL The protocol part is used to identify the class, the rest is passed to the class itself as a parameter. More...
 
static insertToDefault ( $data, array $params=[])
 Like insert() above, but does more of the work for us. More...
 
static insertToForeignDefault ( $data, $wiki)
 
static insertWithFallback (array $tryStores, $data, array $params=[])
 Like insert() above, but does more of the work for us. More...
 

Detailed Description

Constructor class for key/value blob data kept in external repositories.

Objects in external stores are defined by a special URL. The URL is of the form "<store protocol>://<location>/<object name>". The protocol is used to determine what ExternalStoreMedium class is used. The location identifies particular storage instances or database clusters for store class to use.

When an object is inserted into a store, the calling code uses a partial URL of the form "<store protocol>://<location>" and receives the full object URL on success. This is useful since object names can be sequential IDs, UUIDs, or hashes. Callers are not responsible for unique name generation.

External repositories might be populated by maintenance/async scripts, thus partial moving of data may be possible, as well as the possibility to have any storage format (i.e. for archives).

Deprecated:
1.34 Use ExternalStoreFactory directly instead

Definition at line 49 of file ExternalStore.php.

Member Function Documentation

◆ batchFetchFromURLs()

static ExternalStore::batchFetchFromURLs ( array  $urls)
static

Fetch data from multiple URLs with a minimum of round trips.

Parameters
array$urlsThe URLs of the text to get
Returns
array Map from url to its data. Data is either string when found or false on failure.
Exceptions
MWException
Deprecated:
1.34

Definition at line 119 of file ExternalStore.php.

◆ fetchFromURL()

static ExternalStore::fetchFromURL (   $url,
array  $params = [] 
)
static

Fetch data from given URL.

Parameters
string$urlThe URL of the text to get
array$paramsAssociative array of ExternalStoreMedium parameters
Returns
string|bool The text stored or false on error
Exceptions
MWException
Deprecated:
1.34

Definition at line 77 of file ExternalStore.php.

References $e, and $params.

Referenced by FixT22757\execute(), FixT22757\isUnbrokenStub(), ExternalStoreTest\testExternalFetchFromURL_noExternalStores(), and ExternalStoreTest\testExternalFetchFromURL_someExternalStore().

◆ getStoreObject()

static ExternalStore::getStoreObject (   $proto,
array  $params = [] 
)
static

Get an external store object of the given type, with the given parameters.

Parameters
string$protoType of external storage, should be a value in $wgExternalStores
array$paramsAssociative array of ExternalStoreMedium parameters
Returns
ExternalStoreMedium|bool The store class or false on error
Deprecated:
1.34

Definition at line 58 of file ExternalStore.php.

References $e, and $params.

Referenced by MediaWikiIntegrationTestCase\getExternalStoreDatabaseConnections().

◆ insert()

static ExternalStore::insert (   $url,
  $data,
array  $params = [] 
)
static

Store a data item to an external store, identified by a partial URL The protocol part is used to identify the class, the rest is passed to the class itself as a parameter.

Parameters
string$urlA partial external store URL ("<store type>://<location>")
string$data
array$paramsAssociative array of ExternalStoreMedium parameters
Returns
string|bool The URL of the stored data item, or false on error
Exceptions
MWException
Deprecated:
1.34

Definition at line 99 of file ExternalStore.php.

References $e, and $params.

◆ insertToDefault()

static ExternalStore::insertToDefault (   $data,
array  $params = [] 
)
static

Like insert() above, but does more of the work for us.

This function does not need a url param, it builds it by itself. It also fails-over to the next possible clusters provided by $wgDefaultExternalStore.

Parameters
string$data
array$paramsMap of ExternalStoreMedium::__construct context parameters
Returns
string The URL of the stored data item
Exceptions
MWException
Deprecated:
1.34

Definition at line 135 of file ExternalStore.php.

References $params.

Referenced by MigrateArchiveText\doDBUpdates().

◆ insertToForeignDefault()

static ExternalStore::insertToForeignDefault (   $data,
  $wiki 
)
static
Parameters
string$data
string$wiki
Returns
string The URL of the stored data item
Exceptions
MWException
Deprecated:
1.34 Use insertToDefault() with 'wiki' set

Definition at line 165 of file ExternalStore.php.

◆ insertWithFallback()

static ExternalStore::insertWithFallback ( array  $tryStores,
  $data,
array  $params = [] 
)
static

Like insert() above, but does more of the work for us.

This function does not need a url param, it builds it by itself. It also fails-over to the next possible clusters as provided in the first parameter.

Parameters
array$tryStoresRefer to $wgDefaultExternalStore
string$data
array$paramsMap of ExternalStoreMedium::__construct context parameters
Returns
string The URL of the stored data item
Exceptions
MWException
Deprecated:
1.34

Definition at line 152 of file ExternalStore.php.

References $params.


The documentation for this class was generated from the following file: