MediaWiki  1.34.0
importSites.php
Go to the documentation of this file.
1 <?php
2 
3 $basePath = getenv( 'MW_INSTALL_PATH' ) !== false ? getenv( 'MW_INSTALL_PATH' ) : __DIR__ . '/..';
4 
5 require_once $basePath . '/maintenance/Maintenance.php';
6 
15 class ImportSites extends Maintenance {
16 
17  public function __construct() {
18  $this->addDescription( 'Imports site definitions from XML into the sites table.' );
19 
20  $this->addArg( 'file', 'An XML file containing site definitions (see docs/sitelist.txt). ' .
21  'Use "php://stdin" to read from stdin.', true
22  );
23 
24  parent::__construct();
25  }
26 
30  public function execute() {
31  $file = $this->getArg( 0 );
32 
33  $siteStore = \MediaWiki\MediaWikiServices::getInstance()->getSiteStore();
34  $importer = new SiteImporter( $siteStore );
35  $importer->setExceptionCallback( [ $this, 'reportException' ] );
36 
37  $importer->importFromFile( $file );
38 
39  $this->output( "Done.\n" );
40  }
41 
47  public function reportException( Exception $ex ) {
48  $msg = $ex->getMessage();
49  $this->output( "$msg\n" );
50  }
51 }
52 
53 $maintClass = ImportSites::class;
54 require_once RUN_MAINTENANCE_IF_MAIN;
RUN_MAINTENANCE_IF_MAIN
const RUN_MAINTENANCE_IF_MAIN
Definition: Maintenance.php:39
ImportSites\reportException
reportException(Exception $ex)
Outputs a message via the output() method.
Definition: importSites.php:47
Maintenance\addDescription
addDescription( $text)
Set the description text.
Definition: Maintenance.php:348
$file
if(PHP_SAPI !='cli-server') if(!isset( $_SERVER['SCRIPT_FILENAME'])) $file
Item class for a filearchive table row.
Definition: router.php:42
SiteImporter
Definition: SiteImporter.php:30
Maintenance
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
Definition: Maintenance.php:82
ImportSites\__construct
__construct()
Default constructor.
Definition: importSites.php:17
ImportSites
Maintenance script for importing site definitions from XML into the sites table.
Definition: importSites.php:15
$basePath
$basePath
Definition: importSites.php:3
Maintenance\addArg
addArg( $arg, $description, $required=true)
Add some args that are needed.
Definition: Maintenance.php:319
Maintenance\output
output( $out, $channel=null)
Throw some output to the user.
Definition: Maintenance.php:453
Maintenance\getArg
getArg( $argId=0, $default=null)
Get an argument.
Definition: Maintenance.php:371
ImportSites\execute
execute()
Do the import.
Definition: importSites.php:30
$maintClass
$maintClass
Definition: importSites.php:53