MediaWiki
1.29.1
|
Cache for article titles (prefixed DB keys) and ids linked from one source. More...
Public Member Functions | |
__construct (TitleFormatter $titleFormatter, WANObjectCache $cache) | |
addBadLinkObj (LinkTarget $target) | |
addGoodLinkObj ( $id, LinkTarget $target, $len=-1, $redir=null, $revision=0, $model=null, $lang=null) | |
Add a link for the title to the link cache. More... | |
addGoodLinkObjFromRow (LinkTarget $target, $row) | |
Same as above with better interface. More... | |
addLink ( $title) | |
Add a title to the link cache, return the page_id or zero if non-existent. More... | |
addLinkObj (LinkTarget $nt) | |
Add a title to the link cache, return the page_id or zero if non-existent. More... | |
clear () | |
Clears cache. More... | |
clearBadLink ( $title) | |
clearLink (LinkTarget $target) | |
forUpdate ( $update=null) | |
General accessor to get/set whether the master DB should be used. More... | |
getGoodLinkFieldObj (LinkTarget $target, $field) | |
Get a field of a title object from cache. More... | |
getGoodLinkID ( $title) | |
getMutableCacheKeys (WANObjectCache $cache, TitleValue $t) | |
invalidateTitle (LinkTarget $title) | |
Purge the link cache for a title. More... | |
isBadLink ( $title) | |
Static Public Member Functions | |
static | getSelectFields () |
Fields that LinkCache needs to select. More... | |
static | singleton () |
Get an instance of this class. More... | |
Public Attributes | |
const | MAX_SIZE = 10000 |
How many Titles to store. More... | |
Private Member Functions | |
fetchPageRow (IDatabase $db, LinkTarget $nt) | |
isCacheable (LinkTarget $title) | |
Private Attributes | |
HashBagOStuff | $mBadLinks |
bool | $mForUpdate = false |
HashBagOStuff | $mGoodLinks |
TitleFormatter | $titleFormatter |
WANObjectCache | $wanCache |
Cache for article titles (prefixed DB keys) and ids linked from one source.
Definition at line 34 of file LinkCache.php.
LinkCache::__construct | ( | TitleFormatter | $titleFormatter, |
WANObjectCache | $cache | ||
) |
Definition at line 54 of file LinkCache.php.
References $cache, and $titleFormatter.
LinkCache::addBadLinkObj | ( | LinkTarget | $target | ) |
LinkTarget | $target |
Definition at line 169 of file LinkCache.php.
References isBadLink().
Referenced by addLinkObj().
LinkCache::addGoodLinkObj | ( | $id, | |
LinkTarget | $target, | ||
$len = -1 , |
|||
$redir = null , |
|||
$revision = 0 , |
|||
$model = null , |
|||
$lang = null |
|||
) |
Add a link for the title to the link cache.
int | $id | Page's ID |
LinkTarget | $target | |
int | $len | Text's length |
int | $redir | Whether the page is a redirect |
int | $revision | Latest revision's ID |
string | null | $model | Latest revision's content model ID |
string | null | $lang | Language code of the page, if not the content language |
Definition at line 133 of file LinkCache.php.
References $lang.
LinkCache::addGoodLinkObjFromRow | ( | LinkTarget | $target, |
$row | |||
) |
Same as above with better interface.
LinkTarget | $target | |
stdClass | $row | Object which has the fields page_id, page_is_redirect, page_latest and page_content_model |
Definition at line 154 of file LinkCache.php.
Referenced by addLinkObj().
LinkCache::addLink | ( | $title | ) |
Add a title to the link cache, return the page_id or zero if non-existent.
string | $title | Prefixed DB key |
Definition at line 199 of file LinkCache.php.
References $title, addLinkObj(), and Title\newFromDBkey().
LinkCache::addLinkObj | ( | LinkTarget | $nt | ) |
Add a title to the link cache, return the page_id or zero if non-existent.
LinkTarget | $nt | LinkTarget object to add |
Definition at line 233 of file LinkCache.php.
References $cache, $dbr, $wanCache, addBadLinkObj(), addGoodLinkObjFromRow(), array(), DB_MASTER, DB_REPLICA, fetchPageRow(), MediaWiki\Linker\LinkTarget\getDBkey(), getGoodLinkID(), MediaWiki\Linker\LinkTarget\getNamespace(), MediaWiki\Linker\LinkTarget\inNamespace(), isBadLink(), isCacheable(), MediaWiki\Linker\LinkTarget\isExternal(), NS_SPECIAL, use, wfGetDB(), and wfTimestamp().
Referenced by addLink().
LinkCache::clear | ( | ) |
Clears cache.
Definition at line 334 of file LinkCache.php.
LinkCache::clearBadLink | ( | $title | ) |
string | $title | Prefixed DB key |
Definition at line 179 of file LinkCache.php.
References $title.
LinkCache::clearLink | ( | LinkTarget | $target | ) |
LinkTarget | $target |
Definition at line 186 of file LinkCache.php.
|
private |
Definition at line 302 of file LinkCache.php.
References MediaWiki\Linker\LinkTarget\getDBkey(), MediaWiki\Linker\LinkTarget\getNamespace(), getSelectFields(), isCacheable(), and Wikimedia\Rdbms\IDatabase\selectRow().
Referenced by addLinkObj().
LinkCache::forUpdate | ( | $update = null | ) |
General accessor to get/set whether the master DB should be used.
This used to also set the FOR UPDATE option (locking the rows read in order to avoid link table inconsistency), which was later removed for performance on wikis with a high edit rate.
bool | $update |
Definition at line 81 of file LinkCache.php.
References wfSetVar().
LinkCache::getGoodLinkFieldObj | ( | LinkTarget | $target, |
$field | |||
) |
Get a field of a title object from cache.
If this link is not a cached good title, it will return NULL.
LinkTarget | $target | |
string | $field | ('length','redirect','revision','model') |
Definition at line 104 of file LinkCache.php.
LinkCache::getGoodLinkID | ( | $title | ) |
string | $title | Prefixed DB key |
Definition at line 89 of file LinkCache.php.
References $title.
Referenced by addLinkObj().
LinkCache::getMutableCacheKeys | ( | WANObjectCache | $cache, |
TitleValue | $t | ||
) |
WANObjectCache | $cache | |
TitleValue | $t |
Definition at line 290 of file LinkCache.php.
References $cache, $t, and isCacheable().
|
static |
Fields that LinkCache needs to select.
Definition at line 213 of file LinkCache.php.
References global.
Referenced by OutputPage\addCategoryLinksToLBAndGetResult(), CategoryViewer\doCategoryQuery(), LinkBatch\doQuery(), LinkHolderArray\doVariants(), fetchPageRow(), ApiPageSet\getPageTableFields(), LinkHolderArray\replaceInternal(), and SpecialPrefixindex\showPrefixChunk().
LinkCache::invalidateTitle | ( | LinkTarget | $title | ) |
Purge the link cache for a title.
LinkTarget | $title |
Definition at line 322 of file LinkCache.php.
References $cache, $title, ObjectCache\getMainWANInstance(), and isCacheable().
LinkCache::isBadLink | ( | $title | ) |
string | $title | Prefixed DB key |
Definition at line 117 of file LinkCache.php.
References $title.
Referenced by addBadLinkObj(), and addLinkObj().
|
private |
Definition at line 298 of file LinkCache.php.
References $title, NS_FILE, and NS_TEMPLATE.
Referenced by addLinkObj(), fetchPageRow(), getMutableCacheKeys(), and invalidateTitle().
|
static |
Get an instance of this class.
Definition at line 67 of file LinkCache.php.
Referenced by OutputPage\addCategoryLinksToLBAndGetResult(), Title\clearCaches(), LinkHolderArray\doVariants(), RefreshLinks\fixLinksFromArticle(), ApiParse\formatCategoryLinks(), Title\getArticleID(), Title\getContentModel(), Title\getDbPageLanguageCode(), Title\getLatestRevID(), Title\getLength(), Title\getLinksFrom(), Title\getLinksTo(), ExtParserFunctions\ifexistCommon(), ApiPageSet\initFromQueryResult(), Title\isRedirect(), WikiPage\loadFromRow(), TitleCleanup\moveInconsistentPage(), CoreParserFunctions\pageid(), ApiPageSet\processDbRow(), LinkHolderArray\replaceInternal(), Title\resetArticleID(), MediaWikiTestCase\resetDB(), WikiPageTest\setUp(), ParserOptions\setupFakeRevision(), TitleMethodsTest\testClearCaches(), TitleTest\testExists(), ContentHandlerTest\testGetForTitle(), ContentHandlerTest\testGetPageLanguage(), ContentHandlerTest\testMakeContent(), and WikiPage\updateRevisionOn().
|
private |
Definition at line 38 of file LinkCache.php.
|
private |
Definition at line 43 of file LinkCache.php.
|
private |
Definition at line 36 of file LinkCache.php.
|
private |
Definition at line 46 of file LinkCache.php.
Referenced by __construct().
|
private |
Definition at line 40 of file LinkCache.php.
Referenced by addLinkObj().
const LinkCache::MAX_SIZE = 10000 |
How many Titles to store.
There are two caches, so the amount actually stored in memory can be up to twice this.
Definition at line 52 of file LinkCache.php.