|
MediaWiki REL1_35
|
CommentStore handles storage of comments (edit summaries, log reasons, etc) in the database. More...

Public Member Functions | |
| __construct (Language $lang, $stage) | |
| createComment (IDatabase $dbw, $comment, array $data=null) | |
| Create a new CommentStoreComment, inserting it into the database if necessary. | |
| getComment ( $key, $row=null, $fallback=false) | |
| Extract the comment from a row. | |
| getCommentLegacy (IDatabase $db, $key, $row=null, $fallback=false) | |
| Extract the comment from a row, with legacy lookups. | |
| getFields ( $key) | |
| Get SELECT fields for the comment key. | |
| getJoin ( $key) | |
| Get SELECT fields and joins for the comment key. | |
| insert (IDatabase $dbw, $key, $comment=null, $data=null) | |
| Insert a comment in preparation for a row that references it. | |
| insertWithTempTable (IDatabase $dbw, $key, $comment=null, $data=null) | |
| Insert a comment in a temporary table in preparation for a row that references it. | |
Static Public Member Functions | |
| static | getStore () |
| static | hash ( $text, $data) |
| Hashing function for comment storage. | |
Public Attributes | |
| const | COMMENT_CHARACTER_LIMIT = 500 |
| Maximum length of a comment in UTF-8 characters. | |
| const | MAX_DATA_LENGTH = 65535 |
| Maximum length of serialized data in bytes. | |
Private Member Functions | |
| getCommentInternal (?IDatabase $db, $key, $row, $fallback=false) | |
| Extract the comment from a row. | |
| insertInternal (IDatabase $dbw, $key, $comment, $data) | |
Implementation for self::insert() and self::insertWithTempTable() | |
Static Private Member Functions | |
| static | decodeMessage ( $data) |
| Decode a message that was encoded by self::encodeMessage() | |
| static | encodeMessage (Message $msg) |
| Encode a Message as a PHP data structure. | |
Private Attributes | |
| array[] | $joinCache = [] |
Cache for self::getJoin() | |
| Language | $lang |
| Language to use for comment truncation. | |
| int | $stage |
| One of the MIGRATION_* constants, or an appropriate combination of SCHEMA_COMPAT_* constants. | |
| array[] | $tempTables |
| Define fields that use temporary tables for transitional purposes Keys are '$key', values are arrays with these possible fields: | |
CommentStore handles storage of comments (edit summaries, log reasons, etc) in the database.
Definition at line 31 of file CommentStore.php.
| CommentStore::__construct | ( | Language | $lang, |
| $stage | |||
| ) |
| Language | $lang | Language to use for comment truncation. Defaults to content language. |
| int | $stage | One of the MIGRATION_* constants, or an appropriate combination of SCHEMA_COMPAT_* constants. Always MIGRATION_NEW for MediaWiki core since 1.33. |
Definition at line 92 of file CommentStore.php.
References $lang, SCHEMA_COMPAT_READ_BOTH, and SCHEMA_COMPAT_WRITE_BOTH.
| CommentStore::createComment | ( | IDatabase | $dbw, |
| $comment, | |||
| array | $data = null |
||
| ) |
Create a new CommentStoreComment, inserting it into the database if necessary.
If a comment is going to be passed to self::insert() or the like multiple times, it will be more efficient to pass a CommentStoreComment once rather than making self::insert() do it every time through.
$comment->id if it's not already set. If $comment->id is already set, it will not be verified that the specified comment actually exists or that it corresponds to the comment text, message, and/or data in the CommentStoreComment. | IDatabase | $dbw | Database handle to insert on. Unused if $comment is a CommentStoreComment and $comment->id is set. |
| string | Message | CommentStoreComment | $comment | Comment text or Message object, or a CommentStoreComment. |
| array | null | $data | Structured data to store. Keys beginning with '_' are reserved. Ignored if $comment is a CommentStoreComment. |
Definition at line 426 of file CommentStore.php.
References Wikimedia\Rdbms\IDatabase\insert(), Wikimedia\Rdbms\IDatabase\insertId(), SCHEMA_COMPAT_WRITE_NEW, Wikimedia\Rdbms\IDatabase\selectField(), and true.
Referenced by insertInternal().
|
staticprivate |
Decode a message that was encoded by self::encodeMessage()
| array | $data |
Definition at line 621 of file CommentStore.php.
|
staticprivate |
Encode a Message as a PHP data structure.
| Message | $msg |
Definition at line 602 of file CommentStore.php.
References Message\getKey(), Message\getKeysToTry(), and Message\getParams().
| CommentStore::getComment | ( | $key, | |
$row = null, |
|||
$fallback = false |
|||
| ) |
Extract the comment from a row.
Use self::getJoin() to ensure the row contains the needed data.
If you need to fake a comment in a row for some reason, set fields {$key}_text (string) and {$key}_data (JSON string or null).
| string | $key | A key such as "rev_comment" identifying the comment field being fetched. |
| object | array | null | $row | Result row. |
| bool | $fallback | If true, fall back as well as possible instead of throwing an exception. |
Definition at line 369 of file CommentStore.php.
References $fallback, and getCommentInternal().
|
private |
Extract the comment from a row.
Shared implementation for getComment() and getCommentLegacy()
| IDatabase | null | $db | Database handle for getCommentLegacy(), or null for getComment() |
| string | $key | A key such as "rev_comment" identifying the comment field being fetched. |
| object | array | $row | |
| bool | $fallback |
Definition at line 240 of file CommentStore.php.
References $fallback, $t, MIGRATION_NEW, SCHEMA_COMPAT_READ_BOTH, SCHEMA_COMPAT_READ_NEW, SCHEMA_COMPAT_READ_OLD, Wikimedia\Rdbms\IDatabase\selectRow(), and wfLogWarning().
Referenced by getComment(), and getCommentLegacy().
| CommentStore::getCommentLegacy | ( | IDatabase | $db, |
| $key, | |||
$row = null, |
|||
$fallback = false |
|||
| ) |
Extract the comment from a row, with legacy lookups.
If $row might have been generated using self::getFields() rather than self::getJoin(), use this. Prefer self::getComment() if you know callers used self::getJoin() for the row fetch.
If you need to fake a comment in a row for some reason, set fields {$key}_text (string) and {$key}_data (JSON string or null).
| IDatabase | $db | Database handle to use for lookup |
| string | $key | A key such as "rev_comment" identifying the comment field being fetched. |
| object | array | null | $row | Result row. |
| bool | $fallback | If true, fall back as well as possible instead of throwing an exception. |
Definition at line 397 of file CommentStore.php.
References $fallback, and getCommentInternal().
| CommentStore::getFields | ( | $key | ) |
Get SELECT fields for the comment key.
Each resulting row should be passed to self::getCommentLegacy() to get the actual comment.
self::getJoin() instead.| string | $key | A key such as "rev_comment" identifying the comment field being fetched. |
$vars to IDatabase->select(). All fields are aliased, so + is safe to use. Definition at line 129 of file CommentStore.php.
References MIGRATION_NEW, SCHEMA_COMPAT_READ_BOTH, SCHEMA_COMPAT_READ_NEW, and SCHEMA_COMPAT_READ_OLD.
| CommentStore::getJoin | ( | $key | ) |
Get SELECT fields and joins for the comment key.
Each resulting row should be passed to self::getComment() to get the actual comment.
| string | $key | A key such as "rev_comment" identifying the comment field being fetched. |
$table to IDatabase->select()$vars to IDatabase->select()$join_conds to IDatabase->select() All tables, fields, and joins are aliased, so + is safe to use. -return array{tables:string[],fields:string[],joins:array} Definition at line 169 of file CommentStore.php.
References $t, MIGRATION_NEW, SCHEMA_COMPAT_READ_BOTH, SCHEMA_COMPAT_READ_NEW, and SCHEMA_COMPAT_READ_OLD.
|
static |
Definition at line 109 of file CommentStore.php.
Referenced by MediaWiki\Block\DatabaseBlock\getAutoblockUpdateArray(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), MediaWiki\Block\DatabaseBlock\getQueryInfo(), and MediaWiki\Block\DatabaseBlock\initFromRow().
|
static |
Hashing function for comment storage.
| string | $text | Comment text |
| string | null | $data | Comment data |
Definition at line 640 of file CommentStore.php.
| CommentStore::insert | ( | IDatabase | $dbw, |
| $key, | |||
$comment = null, |
|||
$data = null |
|||
| ) |
Insert a comment in preparation for a row that references it.
| IDatabase | $dbw | Database handle to insert on |
| string | $key | A key such as "rev_comment" identifying the comment field being fetched. |
| string | Message | CommentStoreComment | null | $comment | As for self::createComment() |
| array | null | $data | As for self::createComment() |
Definition at line 537 of file CommentStore.php.
References insertInternal(), MIGRATION_NEW, and SCHEMA_COMPAT_WRITE_OLD.
|
private |
Implementation for self::insert() and self::insertWithTempTable()
| IDatabase | $dbw | |
| string | $key | A key such as "rev_comment" identifying the comment field being fetched. |
| string | Message | CommentStoreComment | $comment | |
| array | null | $data |
Definition at line 486 of file CommentStore.php.
References $t, createComment(), Wikimedia\Rdbms\IDatabase\insert(), MIGRATION_NEW, SCHEMA_COMPAT_WRITE_NEW, and SCHEMA_COMPAT_WRITE_OLD.
Referenced by insert(), and insertWithTempTable().
| CommentStore::insertWithTempTable | ( | IDatabase | $dbw, |
| $key, | |||
$comment = null, |
|||
$data = null |
|||
| ) |
Insert a comment in a temporary table in preparation for a row that references it.
This is currently needed for "rev_comment" and "img_description". In the future that requirement will be removed.
| IDatabase | $dbw | Database handle to insert on |
| string | $key | A key such as "rev_comment" identifying the comment field being fetched. |
| string | Message | CommentStoreComment | null | $comment | As for self::createComment() |
| array | null | $data | As for self::createComment() |
Definition at line 575 of file CommentStore.php.
References insertInternal(), and wfDeprecated().
|
private |
Cache for self::getJoin()
Definition at line 80 of file CommentStore.php.
|
private |
Language to use for comment truncation.
Definition at line 83 of file CommentStore.php.
|
private |
One of the MIGRATION_* constants, or an appropriate combination of SCHEMA_COMPAT_* constants.
Definition at line 77 of file CommentStore.php.
|
private |
Define fields that use temporary tables for transitional purposes Keys are '$key', values are arrays with these possible fields:
Definition at line 56 of file CommentStore.php.
| const CommentStore::COMMENT_CHARACTER_LIMIT = 500 |
Maximum length of a comment in UTF-8 characters.
Longer comments will be truncated.
Definition at line 37 of file CommentStore.php.
| const CommentStore::MAX_DATA_LENGTH = 65535 |
Maximum length of serialized data in bytes.
Longer data will result in an exception.
Definition at line 44 of file CommentStore.php.