* @since 1.21
*/
abstract class ExternalStoreMedium {
- /** @var Array */
- protected $params = array();
+ /** @var array */
+ protected $params = [];
/**
- * @param $params array Options
+ * @param array $params Options
*/
- public function __construct( array $params = array() ) {
+ public function __construct( array $params = [] ) {
$this->params = $params;
}
/**
* Fetch data from given external store URL
*
- * @param $url string An external store URL
+ * @param string $url An external store URL
* @return string|bool The text stored or false on error
* @throws MWException
*/
abstract public function fetchFromURL( $url );
+ /**
+ * Fetch data from given external store URLs.
+ *
+ * @param array $urls A list of external store URLs
+ * @return array Map from the url to the text stored. Unfound data is not represented
+ */
+ public function batchFetchFromURLs( array $urls ) {
+ $retval = [];
+ foreach ( $urls as $url ) {
+ $data = $this->fetchFromURL( $url );
+ // Dont return when false to allow for simpler implementations.
+ // errored urls are handled in ExternalStore::batchFetchFromURLs
+ if ( $data !== false ) {
+ $retval[$url] = $data;
+ }
+ }
+
+ return $retval;
+ }
+
/**
* Insert a data item into a given location
*
- * @param $location string: the location name
- * @param $data string: the data item
+ * @param string $location The location name
+ * @param string $data The data item
* @return string|bool The URL of the stored data item, or false on error
* @throws MWException
*/