MediaWiki REL1_35
|
Class for managing stashed edits used by the page updater classes. More...
Public Member Functions | |
__construct (BagOStuff $cache, ILoadBalancer $lb, LoggerInterface $logger, StatsdDataFactoryInterface $stats, HookContainer $hookContainer, $initiator) | |
checkCache (Title $title, Content $content, User $user) | |
Check that a prepared edit is in cache and still up-to-date. | |
fetchInputText ( $textHash) | |
parseAndCache (WikiPage $page, Content $content, User $user, string $summary) | |
stashInputText ( $text, $textHash) | |
Public Attributes | |
const | ERROR_BUSY = 'busy' |
const | ERROR_CACHE = 'error_cache' |
const | ERROR_NONE = 'stashed' |
const | ERROR_PARSE = 'error_parse' |
const | ERROR_UNCACHEABLE = 'uncacheable' |
const | INITIATOR_JOB_OR_CLI = 2 |
const | INITIATOR_USER = 1 |
const | MAX_CACHE_TTL = 300 |
const | MAX_SIGNATURE_TTL = 60 |
const | PRESUME_FRESH_TTL_SEC = 30 |
Private Member Functions | |
getAndWaitForStashValue ( $key) | |
getContentHash (Content $content) | |
Get hash of the content, factoring in model/format. | |
getStashKey (Title $title, $contentHash, User $user) | |
Get the temporary prepared edit stash key for a user. | |
getStashValue ( $key) | |
incrStatsByContent ( $subkey, Content $content) | |
lastEditTime (User $user) | |
pruneExcessStashedEntries (User $user, $newKey) | |
recentStashEntryCount (User $user) | |
storeStashValue ( $key, Content $pstContent, ParserOutput $parserOutput, $timestamp, User $user) | |
Build a value to store in memcached based on the PST content and parser output. | |
Private Attributes | |
BagOStuff | $cache |
ParserOutputStashForEditHook | $hookRunner |
int | $initiator |
ILoadBalancer | $lb |
LoggerInterface | $logger |
StatsdDataFactoryInterface | $stats |
const | MAX_CACHE_RECENT = 2 |
Class for managing stashed edits used by the page updater classes.
Definition at line 46 of file PageEditStash.php.
MediaWiki\Storage\PageEditStash::__construct | ( | BagOStuff | $cache, |
ILoadBalancer | $lb, | ||
LoggerInterface | $logger, | ||
StatsdDataFactoryInterface | $stats, | ||
HookContainer | $hookContainer, | ||
$initiator | |||
) |
BagOStuff | $cache | |
ILoadBalancer | $lb | |
LoggerInterface | $logger | |
StatsdDataFactoryInterface | $stats | |
HookContainer | $hookContainer | |
int | $initiator | Class INITIATOR__* constant |
Definition at line 83 of file PageEditStash.php.
References MediaWiki\Storage\PageEditStash\$cache, MediaWiki\Storage\PageEditStash\$initiator, MediaWiki\Storage\PageEditStash\$lb, MediaWiki\Storage\PageEditStash\$logger, and MediaWiki\Storage\PageEditStash\$stats.
Check that a prepared edit is in cache and still up-to-date.
This method blocks if the prepared edit is already being rendered, waiting until rendering finishes before doing final validity checks.
The cache is rejected if template or file changes are detected. Note that foreign template or file transclusions are not checked.
This returns an object with the following fields:
Definition at line 207 of file PageEditStash.php.
References MediaWiki\Storage\PageEditStash\$logger, $title, MediaWiki\Storage\PageEditStash\getAndWaitForStashValue(), MediaWiki\Storage\PageEditStash\getContentHash(), User\getEditCount(), User\getName(), User\getRequest(), MediaWiki\Storage\PageEditStash\getStashKey(), MediaWiki\Storage\PageEditStash\incrStatsByContent(), User\isAnon(), User\isBot(), MediaWiki\Storage\PageEditStash\lastEditTime(), MediaWiki\Storage\PageEditStash\recentStashEntryCount(), and wfTimestamp().
MediaWiki\Storage\PageEditStash::fetchInputText | ( | $textHash | ) |
string | $textHash |
Definition at line 347 of file PageEditStash.php.
|
private |
string | $key |
Definition at line 321 of file PageEditStash.php.
References MediaWiki\Storage\PageEditStash\getStashValue().
Referenced by MediaWiki\Storage\PageEditStash\checkCache().
|
private |
Get hash of the content, factoring in model/format.
Content | $content |
Definition at line 395 of file PageEditStash.php.
References $content.
Referenced by MediaWiki\Storage\PageEditStash\checkCache(), and MediaWiki\Storage\PageEditStash\parseAndCache().
Get the temporary prepared edit stash key for a user.
This key can be used for caching prepared edits provided:
Title | $title | |
string | $contentHash | Result of getContentHash() |
User | $user | User to get parser options from |
Definition at line 415 of file PageEditStash.php.
References $title, User\getId(), and User\getName().
Referenced by MediaWiki\Storage\PageEditStash\checkCache(), and MediaWiki\Storage\PageEditStash\parseAndCache().
|
private |
string | $key |
Definition at line 430 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\getAndWaitForStashValue(), and MediaWiki\Storage\PageEditStash\parseAndCache().
|
private |
string | $subkey | |
Content | $content |
Definition at line 312 of file PageEditStash.php.
References $content.
Referenced by MediaWiki\Storage\PageEditStash\checkCache().
|
private |
User | $user |
Definition at line 373 of file PageEditStash.php.
References DB_REPLICA, and wfTimestampOrNull().
Referenced by MediaWiki\Storage\PageEditStash\checkCache().
MediaWiki\Storage\PageEditStash::parseAndCache | ( | WikiPage | $page, |
Content | $content, | ||
User | $user, | ||
string | $summary | ||
) |
Definition at line 106 of file PageEditStash.php.
References $content, MediaWiki\Storage\PageEditStash\$logger, $title, DB_MASTER, MediaWiki\Storage\PageEditStash\ERROR_BUSY, MediaWiki\Storage\PageEditStash\ERROR_CACHE, MediaWiki\Storage\PageEditStash\ERROR_NONE, MediaWiki\Storage\PageEditStash\ERROR_PARSE, MediaWiki\Storage\PageEditStash\ERROR_UNCACHEABLE, MediaWiki\Storage\PageEditStash\getContentHash(), MediaWiki\Storage\PageEditStash\getStashKey(), MediaWiki\Storage\PageEditStash\getStashValue(), WikiPage\getTitle(), WikiPage\prepareContentForEdit(), MediaWiki\Storage\PageEditStash\PRESUME_FRESH_TTL_SEC, MediaWiki\Storage\PageEditStash\storeStashValue(), and wfTimestamp().
|
private |
User | $user | |
string | $newKey |
Definition at line 492 of file PageEditStash.php.
References User\getName().
Referenced by MediaWiki\Storage\PageEditStash\storeStashValue().
|
private |
User | $user |
Definition at line 509 of file PageEditStash.php.
References User\getName().
Referenced by MediaWiki\Storage\PageEditStash\checkCache().
MediaWiki\Storage\PageEditStash::stashInputText | ( | $text, | |
$textHash | |||
) |
string | $text | |
string | $textHash |
Definition at line 358 of file PageEditStash.php.
|
private |
Build a value to store in memcached based on the PST content and parser output.
This makes a simple version of WikiPage::prepareContentForEdit() as stash info
string | $key | |
Content | $pstContent | Pre-Save transformed content |
ParserOutput | $parserOutput | |
string | $timestamp | TS_MW |
User | $user |
Definition at line 451 of file PageEditStash.php.
References CacheTime\getCacheExpiry(), CacheTime\getCacheTime(), User\getEditCount(), ParserOutput\getFlag(), MediaWiki\Storage\PageEditStash\pruneExcessStashedEntries(), true, and wfTimestamp().
Referenced by MediaWiki\Storage\PageEditStash\parseAndCache().
|
private |
Definition at line 48 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\__construct().
|
private |
Definition at line 56 of file PageEditStash.php.
|
private |
Definition at line 58 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\__construct().
|
private |
Definition at line 50 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\__construct().
|
private |
Definition at line 52 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\__construct(), MediaWiki\Storage\PageEditStash\checkCache(), and MediaWiki\Storage\PageEditStash\parseAndCache().
|
private |
Definition at line 54 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\__construct().
const MediaWiki\Storage\PageEditStash::ERROR_BUSY = 'busy' |
Definition at line 64 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\parseAndCache().
const MediaWiki\Storage\PageEditStash::ERROR_CACHE = 'error_cache' |
Definition at line 62 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\parseAndCache().
const MediaWiki\Storage\PageEditStash::ERROR_NONE = 'stashed' |
Definition at line 60 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\parseAndCache().
const MediaWiki\Storage\PageEditStash::ERROR_PARSE = 'error_parse' |
Definition at line 61 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\parseAndCache().
const MediaWiki\Storage\PageEditStash::ERROR_UNCACHEABLE = 'uncacheable' |
Definition at line 63 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\parseAndCache().
const MediaWiki\Storage\PageEditStash::INITIATOR_JOB_OR_CLI = 2 |
Definition at line 73 of file PageEditStash.php.
const MediaWiki\Storage\PageEditStash::INITIATOR_USER = 1 |
Definition at line 72 of file PageEditStash.php.
|
private |
Definition at line 70 of file PageEditStash.php.
const MediaWiki\Storage\PageEditStash::MAX_CACHE_TTL = 300 |
Definition at line 67 of file PageEditStash.php.
const MediaWiki\Storage\PageEditStash::MAX_SIGNATURE_TTL = 60 |
Definition at line 68 of file PageEditStash.php.
const MediaWiki\Storage\PageEditStash::PRESUME_FRESH_TTL_SEC = 30 |
Definition at line 66 of file PageEditStash.php.
Referenced by MediaWiki\Storage\PageEditStash\parseAndCache().