diff options
Diffstat (limited to 'includes')
38 files changed, 130 insertions, 5 deletions
diff --git a/includes/DerivativeRequest.php b/includes/DerivativeRequest.php index e2d59b080cbf..704afeb45289 100644 --- a/includes/DerivativeRequest.php +++ b/includes/DerivativeRequest.php @@ -28,6 +28,8 @@ * (POST or GET) and use the base request for the remaining stuff * (cookies, session and headers). * + * @newable + * * @ingroup HTTP * @since 1.19 */ @@ -36,6 +38,8 @@ class DerivativeRequest extends FauxRequest { private $ip; /** + * @stable for calling + * * @param WebRequest $base * @param array $data Array of *non*-urlencoded key => value pairs, the * fake GET/POST values diff --git a/includes/FauxRequest.php b/includes/FauxRequest.php index 7ae0c234d117..4b5349e9e036 100644 --- a/includes/FauxRequest.php +++ b/includes/FauxRequest.php @@ -28,6 +28,8 @@ use MediaWiki\Session\SessionManager; /** * WebRequest clone which takes values from a provided array. * + * @newable + * * @ingroup HTTP */ class FauxRequest extends WebRequest { @@ -36,6 +38,8 @@ class FauxRequest extends WebRequest { protected $cookies = []; /** + * @stable for calling + * * @param array $data Array of *non*-urlencoded key => value pairs, the * fake GET/POST values * @param bool $wasPosted Whether to treat the data as POST diff --git a/includes/MWTimestamp.php b/includes/MWTimestamp.php index 341258c1dbd7..3a6aff591ac8 100644 --- a/includes/MWTimestamp.php +++ b/includes/MWTimestamp.php @@ -27,6 +27,8 @@ use Wikimedia\Timestamp\ConvertibleTimestamp; * Library for creating and parsing MW-style timestamps. Based on the JS * library that does the same thing. * + * @newable + * * @since 1.20 */ class MWTimestamp extends ConvertibleTimestamp { diff --git a/includes/RawMessage.php b/includes/RawMessage.php index 9a0d947dfddd..fcee4b2c644d 100644 --- a/includes/RawMessage.php +++ b/includes/RawMessage.php @@ -29,6 +29,7 @@ * All other functionality (parsing, escaping, etc.) * is preserved. * + * @newable * @since 1.21 */ class RawMessage extends Message { @@ -37,6 +38,7 @@ class RawMessage extends Message { * Call the parent constructor, then store the key as * the message. * + * @stable for calling * @see Message::__construct * * @param string $text Message to use. diff --git a/includes/Revision/MutableRevisionRecord.php b/includes/Revision/MutableRevisionRecord.php index 3259b7d5b27f..a56db01b0f20 100644 --- a/includes/Revision/MutableRevisionRecord.php +++ b/includes/Revision/MutableRevisionRecord.php @@ -36,6 +36,8 @@ use Wikimedia\Assert\Assert; * Mutable RevisionRecord implementation, for building new revision entries programmatically. * Provides setters for all fields. * + * @newable + * * @since 1.31 * @since 1.32 Renamed from MediaWiki\Storage\MutableRevisionRecord * @property MutableRevisionSlots $mSlots @@ -71,6 +73,8 @@ class MutableRevisionRecord extends RevisionRecord { * @note Avoid calling this constructor directly. Use the appropriate methods * in RevisionStore instead. * + * @stable for calling. + * * @param Title $title The title of the page this Revision is associated with. * @param bool|string $dbDomain DB domain of the relevant wiki or false for the current one. * diff --git a/includes/Revision/RevisionSlots.php b/includes/Revision/RevisionSlots.php index 8db9fb370912..81e48fb46450 100644 --- a/includes/Revision/RevisionSlots.php +++ b/includes/Revision/RevisionSlots.php @@ -33,6 +33,8 @@ use Wikimedia\Assert\Assert; * If audience checks are desired, use RevisionRecord::getSlot() or RevisionRecord::getContent() * instead. * + * @newable + * * @since 1.31 * @since 1.32 Renamed from MediaWiki\Storage\RevisionSlots */ @@ -42,6 +44,8 @@ class RevisionSlots { protected $slots; /** + * @stable for calling. + * * @param SlotRecord[]|callable $slots SlotRecords, * or a callback that returns such a structure. */ diff --git a/includes/Status.php b/includes/Status.php index e201e72de585..5a5ac1117731 100644 --- a/includes/Status.php +++ b/includes/Status.php @@ -38,6 +38,8 @@ use MediaWiki\MediaWikiServices; * unconditionally, i.e. both on success and on failure -- so that the * developer of the calling code is reminded that the function can fail, and * so that a lack of error-handling will be explicit. + * + * @newable */ class Status extends StatusValue { /** @var callable|false */ diff --git a/includes/StubObject.php b/includes/StubObject.php index 4d2efdc56c18..24a7c82a91dd 100644 --- a/includes/StubObject.php +++ b/includes/StubObject.php @@ -41,6 +41,8 @@ use Wikimedia\ObjectFactory; * resort, you can use StubObject::isRealObject() to break the loop, but as a * general rule, the stub object mechanism should be transparent, and code * which refers to it should be kept to a minimum. + * + * @newable */ class StubObject { /** @var null|string */ @@ -56,6 +58,8 @@ class StubObject { protected $params; /** + * @stable for calling + * * @param string|null $global Name of the global variable. * @param string|callable|null $class Name of the class of the real object * or a factory function to call diff --git a/includes/api/ApiHelpParamValueMessage.php b/includes/api/ApiHelpParamValueMessage.php index 5e81b07c71e8..35b990e3d82e 100644 --- a/includes/api/ApiHelpParamValueMessage.php +++ b/includes/api/ApiHelpParamValueMessage.php @@ -27,6 +27,7 @@ * include markup wikitext while still keeping the * 'APIGetParamDescriptionMessages' hook simple. * + * @newable * @since 1.25 * @ingroup API */ @@ -38,6 +39,7 @@ class ApiHelpParamValueMessage extends Message { /** * @see Message::__construct + * @stable for calling * * @param string $paramValue Parameter value being documented * @param string $text Message to use. diff --git a/includes/api/ApiMessage.php b/includes/api/ApiMessage.php index 6a8b7d0aed39..254cdcde526e 100644 --- a/includes/api/ApiMessage.php +++ b/includes/api/ApiMessage.php @@ -20,6 +20,7 @@ /** * Extension of Message implementing IApiMessage + * @newable * @since 1.25 * @ingroup API */ @@ -32,6 +33,7 @@ class ApiMessage extends Message implements IApiMessage { * This returns $msg if it's an IApiMessage, calls 'new ApiRawMessage' if * $msg is a RawMessage, or calls 'new ApiMessage' in all other cases. * + * @stable for calling * @param Message|RawMessage|array|string $msg * @param string|null $code * @param array|null $data diff --git a/includes/api/ApiRawMessage.php b/includes/api/ApiRawMessage.php index ed3537a2b6c0..bedeff3243d9 100644 --- a/includes/api/ApiRawMessage.php +++ b/includes/api/ApiRawMessage.php @@ -20,6 +20,7 @@ /** * Extension of RawMessage implementing IApiMessage + * @newable * @since 1.25 * @ingroup API */ @@ -27,6 +28,7 @@ class ApiRawMessage extends RawMessage implements IApiMessage { use ApiMessageTrait; /** + * @stable for calling * @param RawMessage|string|array $msg * - RawMessage: is cloned * - array: first element is $key, rest are $params to RawMessage::__construct diff --git a/includes/cache/dependency/FileDependency.php b/includes/cache/dependency/FileDependency.php index ee956f424110..8290e1841396 100644 --- a/includes/cache/dependency/FileDependency.php +++ b/includes/cache/dependency/FileDependency.php @@ -22,6 +22,7 @@ */ /** + * @newable * @ingroup Cache */ class FileDependency extends CacheDependency { @@ -31,6 +32,8 @@ class FileDependency extends CacheDependency { /** * Create a file dependency * + * @stable for calling + * * @param string $filename The name of the file, preferably fully qualified * @param null|bool|int $timestamp The unix last modified timestamp, or false if the * file does not exist. If omitted, the timestamp will be loaded from diff --git a/includes/config/GlobalVarConfig.php b/includes/config/GlobalVarConfig.php index 6295371984a0..1eefbff7c52d 100644 --- a/includes/config/GlobalVarConfig.php +++ b/includes/config/GlobalVarConfig.php @@ -23,6 +23,7 @@ /** * Accesses configuration settings from $GLOBALS * + * @newable * @since 1.23 */ class GlobalVarConfig implements Config { @@ -41,6 +42,11 @@ class GlobalVarConfig implements Config { return new GlobalVarConfig(); } + /** + * @stable for calling + * + * @param string $prefix + */ public function __construct( $prefix = 'wg' ) { $this->prefix = $prefix; } diff --git a/includes/content/CssContent.php b/includes/content/CssContent.php index e0a55f3fff32..7b1d11b13cc7 100644 --- a/includes/content/CssContent.php +++ b/includes/content/CssContent.php @@ -30,6 +30,7 @@ use MediaWiki\MediaWikiServices; /** * Content object for CSS pages. * + * @newable * @ingroup Content */ class CssContent extends TextContent { @@ -40,6 +41,7 @@ class CssContent extends TextContent { private $redirectTarget = false; /** + * @stable for calling * @param string $text CSS code. * @param string $modelId the content content model */ diff --git a/includes/content/JavaScriptContent.php b/includes/content/JavaScriptContent.php index 2ebb4777f0e9..04a9304e3223 100644 --- a/includes/content/JavaScriptContent.php +++ b/includes/content/JavaScriptContent.php @@ -30,6 +30,7 @@ use MediaWiki\MediaWikiServices; /** * Content for JavaScript pages. * + * @newable * @ingroup Content */ class JavaScriptContent extends TextContent { @@ -40,6 +41,7 @@ class JavaScriptContent extends TextContent { private $redirectTarget = false; /** + * @stable for calling * @param string $text JavaScript code. * @param string $modelId the content model name */ diff --git a/includes/content/TextContent.php b/includes/content/TextContent.php index 7fb8f01eecac..985d9e7cfdf0 100644 --- a/includes/content/TextContent.php +++ b/includes/content/TextContent.php @@ -32,6 +32,7 @@ use MediaWiki\MediaWikiServices; * * TextContent instances are immutable * + * @newable * @ingroup Content */ class TextContent extends AbstractContent { @@ -42,6 +43,7 @@ class TextContent extends AbstractContent { protected $mText; /** + * @stable for calling * @param string $text * @param string $model_id * @throws MWException diff --git a/includes/content/WikitextContent.php b/includes/content/WikitextContent.php index e827dffb9097..0b3a989900b5 100644 --- a/includes/content/WikitextContent.php +++ b/includes/content/WikitextContent.php @@ -31,6 +31,7 @@ use MediaWiki\MediaWikiServices; /** * Content object for wiki text pages. * + * @newable * @ingroup Content */ class WikitextContent extends TextContent { @@ -47,6 +48,11 @@ class WikitextContent extends TextContent { */ private $previousParseStackTrace = null; + /** + * @stable for calling + * + * @param string $text + */ public function __construct( $text ) { parent::__construct( $text, CONTENT_MODEL_WIKITEXT ); } diff --git a/includes/context/DerivativeContext.php b/includes/context/DerivativeContext.php index 062903289825..39e9f416f137 100644 --- a/includes/context/DerivativeContext.php +++ b/includes/context/DerivativeContext.php @@ -25,6 +25,7 @@ use MediaWiki\MediaWikiServices; * but allow individual pieces of context to be changed locally * eg: A ContextSource that can inherit from the main RequestContext but have * a different Title instance set on it. + * @newable * @since 1.19 */ class DerivativeContext extends ContextSource implements MutableContext { @@ -74,6 +75,7 @@ class DerivativeContext extends ContextSource implements MutableContext { private $timing; /** + * @stable for calling * @param IContextSource $context Context to inherit from */ public function __construct( IContextSource $context ) { diff --git a/includes/exception/ErrorPageError.php b/includes/exception/ErrorPageError.php index 114219719e7e..289688e65d43 100644 --- a/includes/exception/ErrorPageError.php +++ b/includes/exception/ErrorPageError.php @@ -21,6 +21,8 @@ /** * An error page which can definitely be safely rendered using the OutputPage. * + * @newable + * * @since 1.7 * @ingroup Exception */ @@ -32,6 +34,8 @@ class ErrorPageError extends MWException implements ILocalizedException { /** * Note: these arguments are keys into wfMessage(), not text! * + * @stable for calling + * * @param string|Message $title Message key (string) for page title, or a Message object * @param string|Message $msg Message key (string) for error text, or a Message object * @param array $params Array with parameters to wfMessage() diff --git a/includes/exception/MWException.php b/includes/exception/MWException.php index 3c066481600d..77f79f7b93f8 100644 --- a/includes/exception/MWException.php +++ b/includes/exception/MWException.php @@ -21,6 +21,8 @@ /** * MediaWiki exception * + * @newable + * * @ingroup Exception */ class MWException extends Exception { diff --git a/includes/language/Message.php b/includes/language/Message.php index 60a5753809f3..cc4fbcb54b20 100644 --- a/includes/language/Message.php +++ b/includes/language/Message.php @@ -155,6 +155,7 @@ use MediaWiki\MediaWikiServices; * @see https://www.mediawiki.org/wiki/Localisation * * @since 1.17 + * @newable * @ingroup Language */ class Message implements MessageSpecifier, Serializable { @@ -238,6 +239,7 @@ class Message implements MessageSpecifier, Serializable { protected $message; /** + * @stable for calling * @since 1.17 * @param string|string[]|MessageSpecifier $key Message key, or array of * message keys to try and use the first non-empty message for, or a diff --git a/includes/libs/HtmlArmor.php b/includes/libs/HtmlArmor.php index 6e6ad7c9b42c..2bacf978404f 100644 --- a/includes/libs/HtmlArmor.php +++ b/includes/libs/HtmlArmor.php @@ -23,6 +23,8 @@ /** * Marks HTML that shouldn't be escaped * + * @newable + * * @since 1.28 */ class HtmlArmor { @@ -33,6 +35,8 @@ class HtmlArmor { private $value; /** + * @stable for calling + * * @param string|null $value */ public function __construct( $value ) { diff --git a/includes/libs/Message/DataMessageValue.php b/includes/libs/Message/DataMessageValue.php index 686b2ed4bfd9..4bec3ad5893b 100644 --- a/includes/libs/Message/DataMessageValue.php +++ b/includes/libs/Message/DataMessageValue.php @@ -17,6 +17,8 @@ namespace Wikimedia\Message; * `[ 0 => new ScalarParam( ParamType::TEXT, 1 ), 1 => new ScalarParam( ParamType::TEXT, 10 ) ]`. * * DataMessageValues are pure value objects and are safely newable. + * + * @newable */ class DataMessageValue extends MessageValue { /** @var string */ @@ -26,6 +28,8 @@ class DataMessageValue extends MessageValue { private $data; /** + * @stable for calling + * * @param string $key * @param (MessageParam|MessageValue|string|int|float)[] $params * @param string|null $code String representing the concept behind diff --git a/includes/libs/Message/ListParam.php b/includes/libs/Message/ListParam.php index 7f7d19865ac2..68f4489e9970 100644 --- a/includes/libs/Message/ListParam.php +++ b/includes/libs/Message/ListParam.php @@ -6,11 +6,15 @@ namespace Wikimedia\Message; * Value object representing a message parameter that consists of a list of values. * * Message parameter classes are pure value objects and are safely newable. + * + * @newable */ class ListParam extends MessageParam { private $listType; /** + * @stable for calling. + * * @param string $listType One of the ListType constants. * @param (MessageParam|MessageValue|string|int|float)[] $elements Values in the list. * Values that are not instances of MessageParam are wrapped using ParamType::TEXT. diff --git a/includes/libs/Message/MessageValue.php b/includes/libs/Message/MessageValue.php index 78e3c22cb463..746dbb2e1474 100644 --- a/includes/libs/Message/MessageValue.php +++ b/includes/libs/Message/MessageValue.php @@ -10,6 +10,8 @@ namespace Wikimedia\Message; * IMessageFormatterFactory. * * MessageValues are pure value objects and are safely newable. + * + * @newable */ class MessageValue { /** @var string */ @@ -19,6 +21,8 @@ class MessageValue { private $params; /** + * @stable for calling + * * @param string $key * @param (MessageParam|MessageValue|string|int|float)[] $params Values that are not instances * of MessageParam are wrapped using ParamType::TEXT. diff --git a/includes/libs/Message/ScalarParam.php b/includes/libs/Message/ScalarParam.php index ea4c9a02019a..7484561beaaa 100644 --- a/includes/libs/Message/ScalarParam.php +++ b/includes/libs/Message/ScalarParam.php @@ -6,11 +6,15 @@ namespace Wikimedia\Message; * Value object representing a message parameter holding a single value. * * Message parameter classes are pure value objects and are safely newable. + * + * @newable */ class ScalarParam extends MessageParam { /** * Construct a text parameter * + * @stable for calling. + * * @param string $type One of the ParamType constants. * @param string|int|float|MessageValue $value */ diff --git a/includes/libs/StaticArrayWriter.php b/includes/libs/StaticArrayWriter.php index f5613681bc54..79a3e6542110 100644 --- a/includes/libs/StaticArrayWriter.php +++ b/includes/libs/StaticArrayWriter.php @@ -21,6 +21,7 @@ namespace Wikimedia; /** * Format a static PHP array to be written to a file * + * @newable * @since 1.32 */ class StaticArrayWriter { diff --git a/includes/libs/StatusValue.php b/includes/libs/StatusValue.php index ffb54e01912a..1603acb490ae 100644 --- a/includes/libs/StatusValue.php +++ b/includes/libs/StatusValue.php @@ -37,6 +37,7 @@ * * The use of Message objects should be avoided when serializability is needed. * + * @newable * @since 1.25 */ class StatusValue { diff --git a/includes/libs/objectcache/CachedBagOStuff.php b/includes/libs/objectcache/CachedBagOStuff.php index c27e0ef224dc..e2d63076d580 100644 --- a/includes/libs/objectcache/CachedBagOStuff.php +++ b/includes/libs/objectcache/CachedBagOStuff.php @@ -31,6 +31,7 @@ * * Locks go to the backend cache (with MultiWriteBagOStuff, it would wind * up going to the HashBagOStuff used for the in-memory cache). * + * @newable * @ingroup Cache */ class CachedBagOStuff extends BagOStuff { @@ -40,6 +41,7 @@ class CachedBagOStuff extends BagOStuff { protected $procCache; /** + * @stable for calling * @param BagOStuff $backend Permanent backend to use * @param array $params Parameters for HashBagOStuff */ diff --git a/includes/libs/objectcache/HashBagOStuff.php b/includes/libs/objectcache/HashBagOStuff.php index 8a0a6b78da73..30ae66ce5747 100644 --- a/includes/libs/objectcache/HashBagOStuff.php +++ b/includes/libs/objectcache/HashBagOStuff.php @@ -26,6 +26,7 @@ * * Data will not persist and is not shared with other processes. * + * @newable * @ingroup Cache */ class HashBagOStuff extends MediumSpecificBagOStuff { @@ -45,6 +46,7 @@ class HashBagOStuff extends MediumSpecificBagOStuff { public const KEY_CAS = 2; /** + * @stable for calling * @param array $params Additional parameters include: * - maxKeys : only allow this many keys (using oldest-first eviction) * @codingStandardsIgnoreStart diff --git a/includes/mail/MailAddress.php b/includes/mail/MailAddress.php index 1a5d08ac2a2c..3816a2050a30 100644 --- a/includes/mail/MailAddress.php +++ b/includes/mail/MailAddress.php @@ -28,6 +28,8 @@ * Stores a single person's name and email address. * These are passed in via the constructor, and will be returned in SMTP * header format when requested. + * + * @newable */ class MailAddress { /** @@ -46,6 +48,8 @@ class MailAddress { public $address; /** + * @stable for calling + * * @param string $address String with an email address * @param string|null $name Human-readable name if a string address is given * @param string|null $realName Human-readable real name if a string address is given diff --git a/includes/parser/StripState.php b/includes/parser/StripState.php index 9623001de979..ca3d5c500f7d 100644 --- a/includes/parser/StripState.php +++ b/includes/parser/StripState.php @@ -23,6 +23,7 @@ /** * @todo document, briefly. + * @newable * @ingroup Parser */ class StripState { @@ -40,6 +41,8 @@ class StripState { protected $sizeLimit = 5000000; /** + * @stable for calling + * * @param Parser|null $parser * @param array $options */ diff --git a/includes/session/SessionId.php b/includes/session/SessionId.php index c218351701f2..8d5a452fc7d4 100644 --- a/includes/session/SessionId.php +++ b/includes/session/SessionId.php @@ -32,6 +32,8 @@ namespace MediaWiki\Session; * can't just hold the ID as a string because we need to be able to update the * ID when SessionBackend::resetId() is called. * + * @newable + * * @ingroup Session * @since 1.27 */ @@ -40,6 +42,8 @@ final class SessionId { private $id; /** + * @stable for calling + * * @param string $id */ public function __construct( $id ) { diff --git a/includes/session/SessionInfo.php b/includes/session/SessionInfo.php index c7822d01af9f..c6901768f9a3 100644 --- a/includes/session/SessionInfo.php +++ b/includes/session/SessionInfo.php @@ -27,6 +27,9 @@ namespace MediaWiki\Session; * Value object returned by SessionProvider * * This holds the data necessary to construct a Session. + * May require services to be injected into the constructor. + * + * @newable * * @ingroup Session * @since 1.27 @@ -69,6 +72,8 @@ class SessionInfo { private $providerMetadata = null; /** + * @stable for calling + * * @param int $priority Session priority * @param array $data * - provider: (SessionProvider|null) If not given, the provider will be diff --git a/includes/title/TitleValue.php b/includes/title/TitleValue.php index 6a61710df4b5..9d7f465dd0b4 100644 --- a/includes/title/TitleValue.php +++ b/includes/title/TitleValue.php @@ -31,6 +31,8 @@ use Wikimedia\Assert\ParameterTypeException; * @note In contrast to Title, this is designed to be a plain value object. That is, * it is immutable, does not use global state, and causes no side effects. * + * @newable + * * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue * @since 1.23 */ @@ -107,6 +109,8 @@ class TitleValue implements LinkTarget { * either from a database entry, or by a TitleParser. For constructing a TitleValue from user * input or external sources, use a TitleParser. * + * @stable for calling + * * @param int $namespace The namespace ID. This is not validated. * @param string $title The page title in either DBkey or text form. No normalization is applied * beyond underscore/space conversion. diff --git a/includes/user/LoggedOutEditToken.php b/includes/user/LoggedOutEditToken.php index 5444a51fc66a..cc09e7079c73 100644 --- a/includes/user/LoggedOutEditToken.php +++ b/includes/user/LoggedOutEditToken.php @@ -30,9 +30,15 @@ use MediaWiki\Session\Token; * (i.e. the API) doesn't have to have so many special cases for anon edit * tokens. * + * @newable + * * @since 1.27 */ class LoggedOutEditToken extends Token { + + /** + * @stable for calling + */ public function __construct() { parent::__construct( '', '', false ); } diff --git a/includes/user/UserIdentityValue.php b/includes/user/UserIdentityValue.php index 800ac760a5f4..a4b21599aa26 100644 --- a/includes/user/UserIdentityValue.php +++ b/includes/user/UserIdentityValue.php @@ -27,6 +27,8 @@ use Wikimedia\Assert\Assert; /** * Value object representing a user's identity. * + * @newable + * * @since 1.31 */ class UserIdentityValue implements UserIdentity { @@ -47,6 +49,8 @@ class UserIdentityValue implements UserIdentity { private $actor; /** + * @stable for calling + * * @param int $id * @param string $name * @param int $actor diff --git a/includes/utils/BatchRowIterator.php b/includes/utils/BatchRowIterator.php index 19340b05f266..06deb1f92b23 100644 --- a/includes/utils/BatchRowIterator.php +++ b/includes/utils/BatchRowIterator.php @@ -3,11 +3,6 @@ use Wikimedia\Rdbms\IDatabase; /** - * Allows iterating a large number of rows in batches transparently. - * By default when iterated over returns the full query result as an - * array of rows. Can be wrapped in RecursiveIteratorIterator to - * collapse those arrays into a single stream of rows queried in batches. - * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -26,6 +21,15 @@ use Wikimedia\Rdbms\IDatabase; * @file * @ingroup Maintenance */ + +/** + * Allows iterating a large number of rows in batches transparently. + * By default when iterated over returns the full query result as an + * array of rows. Can be wrapped in RecursiveIteratorIterator to + * collapse those arrays into a single stream of rows queried in batches. + * + * @newable + */ class BatchRowIterator implements RecursiveIterator { /** @@ -85,6 +89,8 @@ class BatchRowIterator implements RecursiveIterator { protected $options = []; /** + * @stable for calling + * * @param IDatabase $db The database to read from * @param string|array $table The name or names of the table to read from * @param string|array $primaryKey The name or names of the primary key columns |