MediaWiki  master
clearInterwikiCache.php
Go to the documentation of this file.
1 <?php
24 require_once __DIR__ . '/Maintenance.php';
25 
32 
33  public function __construct() {
34  parent::__construct();
35  $this->addDescription( 'Clear all interwiki links for all languages from the cache' );
36  }
37 
38  public function execute() {
39  global $wgLocalDatabases, $wgMemc;
40  $dbr = $this->getDB( DB_REPLICA );
41  $res = $dbr->select( 'interwiki', [ 'iw_prefix' ], '', __METHOD__ );
42  $prefixes = [];
43  foreach ( $res as $row ) {
44  $prefixes[] = $row->iw_prefix;
45  }
46 
47  foreach ( $wgLocalDatabases as $wikiId ) {
48  $this->output( "$wikiId..." );
49  foreach ( $prefixes as $prefix ) {
50  $wgMemc->delete( "$wikiId:interwiki:$prefix" );
51  }
52  $this->output( "done\n" );
53  }
54  }
55 }
56 
57 $maintClass = ClearInterwikiCache::class;
58 require_once RUN_MAINTENANCE_IF_MAIN;
const RUN_MAINTENANCE_IF_MAIN
Definition: Maintenance.php:39
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
Definition: Maintenance.php:82
$wgMemc
Definition: Setup.php:774
addDescription( $text)
Set the description text.
output( $out, $channel=null)
Throw some output to the user.
const DB_REPLICA
Definition: defines.php:25
string [] $wgLocalDatabases
Other wikis on this site, can be administered from a single developer account.
Maintenance script to clear the cache of interwiki prefixes for all local wikis.
getDB( $db, $groups=[], $dbDomain=false)
Returns a database to be used by current maintenance script.