blob: 67dee83ce6ebbfe01bde3c8ce3153207e8716198 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<?php
namespace MediaWiki\Page;
use MediaWiki\Title\Title;
/**
* Convenience trait for conversion to PageIdentity.
*
* For the cross-wiki aware code, this should be used instead of PageIdentity::getId
* until Title is dropped. Before transition to PageIdentity, Title could exist for
* foreign wikis with no indication about it (Title does not have $wikiId).
* It was very brittle, but it worked. Until Title is deprecated in the codebase,
* most of the PageIdentity instances passed around are Titles. So for cross-wiki access,
* stricter domain validation of PageIdentity::getId will break wikis.
*
* Additionally, loose checks on Title regarding whether the page can exist or not
* have been depended upon in a number of places in the codebase.
*
* This trait is only supposed to be used in cross-wiki aware code, and only exists until
* code up the stack is guaranteed not to pass Title.
*
* @internal
*/
trait LegacyArticleIdAccess {
/**
* Before transition to PageIdentity, Title could exist for foreign wikis.
* It was very brittle, but it worked. Until Title is deprecated in the codebase,
* most of the PageIdentity instances passed around are Titles.
* So for cross-wiki access, stricter domain validation of PageIdentity::getId
* will break wikis. This method supposed to exist only for the transition period
* and will be removed after.
*
* Additionally, loose checks on Title regarding whether the page can exist or not
* have been depended upon in a number of places in the codebase.
*
* @param PageIdentity $title
* @return int
*/
protected function getArticleId( PageIdentity $title ): int {
if ( $title instanceof Title ) {
return $title->getArticleID();
}
return $title->getId( $this->getWikiId() );
}
/**
* Get the ID of the wiki this revision belongs to.
*
* @return string|false The wiki's logical name, of false to indicate the local wiki.
*/
abstract protected function getWikiId();
}
|