MediaWiki
REL1_32
CachingSiteStore.php
Go to the documentation of this file.
1
<?php
2
31
class
CachingSiteStore
implements
SiteStore
{
32
36
private
$sites
=
null
;
37
41
private
$cacheKey
;
42
46
private
$cacheTimeout
;
47
51
private
$cache
;
52
56
private
$siteStore
;
57
64
public
function
__construct
(
65
SiteStore
$siteStore
,
66
BagOStuff
$cache
,
67
$cacheKey
=
null
,
68
$cacheTimeout
= 3600
69
) {
70
$this->siteStore =
$siteStore
;
71
$this->
cache
=
$cache
;
72
$this->cacheKey =
$cacheKey
;
73
$this->cacheTimeout =
$cacheTimeout
;
74
}
75
90
private
function
getCacheKey
() {
91
if
( $this->cacheKey ===
null
) {
92
$type
=
'SiteList#'
.
SiteList::getSerialVersionId
();
93
$this->cacheKey = $this->
cache
->makeKey(
"sites/$type"
);
94
}
95
96
return
$this->cacheKey
;
97
}
98
106
public
function
getSites
() {
107
if
( $this->sites ===
null
) {
108
$this->sites = $this->
cache
->get( $this->
getCacheKey
() );
109
110
if
( !is_object( $this->sites ) ) {
111
$this->sites = $this->siteStore->getSites();
112
113
$this->
cache
->set( $this->
getCacheKey
(), $this->sites, $this->cacheTimeout );
114
}
115
}
116
117
return
$this->sites
;
118
}
119
129
public
function
getSite
( $globalId ) {
130
$sites
= $this->
getSites
();
131
132
return
$sites
->
hasSite
( $globalId ) ?
$sites
->
getSite
( $globalId ) :
null
;
133
}
134
144
public
function
saveSite
(
Site
$site ) {
145
return
$this->
saveSites
( [ $site ] );
146
}
147
157
public
function
saveSites
(
array
$sites
) {
158
if
( empty(
$sites
) ) {
159
return
true
;
160
}
161
162
$success
= $this->siteStore->saveSites(
$sites
);
163
164
// purge cache
165
$this->
reset
();
166
167
return
$success
;
168
}
169
178
public
function
reset
() {
179
// purge cache
180
$this->
cache
->delete( $this->
getCacheKey
() );
181
$this->sites =
null
;
182
}
183
193
public
function
clear
() {
194
$this->
reset
();
195
196
return
$this->siteStore->clear();
197
}
198
199
}
$success
$success
Definition
NoLocalSettings.php:42
BagOStuff
Class representing a cache/ephemeral data store.
Definition
BagOStuff.php:58
CachingSiteStore
Definition
CachingSiteStore.php:31
CachingSiteStore\saveSites
saveSites(array $sites)
Definition
CachingSiteStore.php:157
CachingSiteStore\getSites
getSites()
Definition
CachingSiteStore.php:106
CachingSiteStore\$sites
SiteList null $sites
Definition
CachingSiteStore.php:36
CachingSiteStore\$siteStore
SiteStore $siteStore
Definition
CachingSiteStore.php:56
CachingSiteStore\$cacheKey
string null $cacheKey
Definition
CachingSiteStore.php:41
CachingSiteStore\saveSite
saveSite(Site $site)
Definition
CachingSiteStore.php:144
CachingSiteStore\getCacheKey
getCacheKey()
Constructs a cache key to use for caching the list of sites.
Definition
CachingSiteStore.php:90
CachingSiteStore\$cacheTimeout
int $cacheTimeout
Definition
CachingSiteStore.php:46
CachingSiteStore\clear
clear()
Clears the list of sites stored.
Definition
CachingSiteStore.php:193
CachingSiteStore\__construct
__construct(SiteStore $siteStore, BagOStuff $cache, $cacheKey=null, $cacheTimeout=3600)
Definition
CachingSiteStore.php:64
CachingSiteStore\reset
reset()
Purges the internal and external cache of the site list, forcing the list.
Definition
CachingSiteStore.php:178
CachingSiteStore\getSite
getSite( $globalId)
Definition
CachingSiteStore.php:129
CachingSiteStore\$cache
BagOStuff $cache
Definition
CachingSiteStore.php:51
SiteList
Definition
SiteList.php:29
SiteList\getSerialVersionId
static getSerialVersionId()
Returns the version ID that identifies the serialization structure used by getSerializationData() and...
Definition
SiteList.php:310
SiteList\hasSite
hasSite( $globalSiteId)
Returns if the list contains the site with the provided global site identifier.
Definition
SiteList.php:140
SiteList\getSite
getSite( $globalSiteId)
Returns the Site with the provided global site identifier.
Definition
SiteList.php:154
Site
Definition
Site.php:29
SiteStore
Definition
SiteStore.php:29
cache
you have access to all of the normal MediaWiki so you can get a DB use the cache
Definition
maintenance.txt:55
array
The wiki should then use memcached to cache various data To use multiple just add more items to the array To increase the weight of a make its entry a array("192.168.0.1:11211", 2))
$type
$type
Definition
testCompression.php:48
includes
site
CachingSiteStore.php
Generated on Mon Nov 25 2024 15:57:38 for MediaWiki by
1.10.0