summaryrefslogtreecommitdiff
path: root/includes/Export.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/Export.php')
-rw-r--r--includes/Export.php373
1 files changed, 191 insertions, 182 deletions
diff --git a/includes/Export.php b/includes/Export.php
index 98de4c00..84f5c60c 100644
--- a/includes/Export.php
+++ b/includes/Export.php
@@ -3,7 +3,7 @@
* Base classes for dumps and export
*
* Copyright © 2003, 2005, 2006 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -31,11 +31,17 @@
* @ingroup SpecialPage Dump
*/
class WikiExporter {
- var $list_authors = false; # Return distinct author list (when not returning full history)
- var $author_list = "";
+ /** @var bool Return distinct author list (when not returning full history) */
+ public $list_authors = false;
- var $dumpUploads = false;
- var $dumpUploadFileContents = false;
+ /** @var bool */
+ public $dumpUploads = false;
+
+ /** @var bool */
+ public $dumpUploadFileContents = false;
+
+ /** @var string */
+ public $author_list = "";
const FULL = 1;
const CURRENT = 2;
@@ -49,21 +55,21 @@ class WikiExporter {
const TEXT = 0;
const STUB = 1;
- var $buffer;
+ /** @var int */
+ public $buffer;
- var $text;
+ /** @var int */
+ public $text;
- /**
- * @var DumpOutput
- */
- var $sink;
+ /** @var DumpOutput */
+ public $sink;
/**
* Returns the export schema version.
* @return string
*/
public static function schemaVersion() {
- return "0.8";
+ return "0.9";
}
/**
@@ -73,15 +79,14 @@ class WikiExporter {
* make additional queries to pull source data while the
* main query is still running.
*
- * @param $db DatabaseBase
- * @param $history Mixed: one of WikiExporter::FULL, WikiExporter::CURRENT,
- * WikiExporter::RANGE or WikiExporter::STABLE,
- * or an associative array:
- * offset: non-inclusive offset at which to start the query
- * limit: maximum number of rows to return
- * dir: "asc" or "desc" timestamp order
- * @param int $buffer one of WikiExporter::BUFFER or WikiExporter::STREAM
- * @param int $text one of WikiExporter::TEXT or WikiExporter::STUB
+ * @param DatabaseBase $db
+ * @param int|array $history One of WikiExporter::FULL, WikiExporter::CURRENT,
+ * WikiExporter::RANGE or WikiExporter::STABLE, or an associative array:
+ * - offset: non-inclusive offset at which to start the query
+ * - limit: maximum number of rows to return
+ * - dir: "asc" or "desc" timestamp order
+ * @param int $buffer One of WikiExporter::BUFFER or WikiExporter::STREAM
+ * @param int $text One of WikiExporter::TEXT or WikiExporter::STUB
*/
function __construct( $db, $history = WikiExporter::CURRENT,
$buffer = WikiExporter::BUFFER, $text = WikiExporter::TEXT ) {
@@ -98,7 +103,7 @@ class WikiExporter {
* various row objects and XML output for filtering. Filters
* can be chained or used as callbacks.
*
- * @param $sink mixed
+ * @param DumpOutput $sink
*/
public function setOutputSink( &$sink ) {
$this->sink =& $sink;
@@ -126,9 +131,9 @@ class WikiExporter {
/**
* Dumps a series of page and revision records for those pages
* in the database falling within the page_id range given.
- * @param int $start inclusive lower limit (this id is included)
- * @param $end Int: Exclusive upper limit (this id is not included)
- * If 0, no upper limit.
+ * @param int $start Inclusive lower limit (this id is included)
+ * @param int $end Exclusive upper limit (this id is not included)
+ * If 0, no upper limit.
*/
public function pagesByRange( $start, $end ) {
$condition = 'page_id >= ' . intval( $start );
@@ -141,9 +146,9 @@ class WikiExporter {
/**
* Dumps a series of page and revision records for those pages
* in the database with revisions falling within the rev_id range given.
- * @param int $start inclusive lower limit (this id is included)
- * @param $end Int: Exclusive upper limit (this id is not included)
- * If 0, no upper limit.
+ * @param int $start Inclusive lower limit (this id is included)
+ * @param int $end Exclusive upper limit (this id is not included)
+ * If 0, no upper limit.
*/
public function revsByRange( $start, $end ) {
$condition = 'rev_id >= ' . intval( $start );
@@ -154,7 +159,7 @@ class WikiExporter {
}
/**
- * @param $title Title
+ * @param Title $title
*/
public function pageByTitle( $title ) {
$this->dumpFrom(
@@ -163,7 +168,7 @@ class WikiExporter {
}
/**
- * @param $name string
+ * @param string $name
* @throws MWException
*/
public function pageByName( $name ) {
@@ -176,7 +181,7 @@ class WikiExporter {
}
/**
- * @param $names array
+ * @param array $names
*/
public function pagesByName( $names ) {
foreach ( $names as $name ) {
@@ -189,8 +194,8 @@ class WikiExporter {
}
/**
- * @param $start int
- * @param $end int
+ * @param int $start
+ * @param int $end
*/
public function logsByRange( $start, $end ) {
$condition = 'log_id >= ' . intval( $start );
@@ -205,7 +210,7 @@ class WikiExporter {
* Not called by default (depends on $this->list_authors)
* Can be set by Special:Export when not exporting whole history
*
- * @param $cond
+ * @param array $cond
*/
protected function do_list_authors( $cond ) {
wfProfileIn( __METHOD__ );
@@ -238,7 +243,7 @@ class WikiExporter {
}
/**
- * @param $cond string
+ * @param string $cond
* @throws MWException
* @throws Exception
*/
@@ -262,7 +267,7 @@ class WikiExporter {
if ( $this->buffer == WikiExporter::STREAM ) {
$prev = $this->db->bufferResults( false );
}
- $wrapper = null; // Assuring $wrapper is not undefined, if exception occurs early
+ $result = null; // Assuring $result is not undefined, if exception occurs early
try {
$result = $this->db->select( array( 'logging', 'user' ),
array( "{$logging}.*", 'user_name' ), // grab the user name
@@ -270,8 +275,7 @@ class WikiExporter {
__METHOD__,
array( 'ORDER BY' => 'log_id', 'USE INDEX' => array( 'logging' => 'PRIMARY' ) )
);
- $wrapper = $this->db->resultObject( $result );
- $this->outputLogStream( $wrapper );
+ $this->outputLogStream( $result );
if ( $this->buffer == WikiExporter::STREAM ) {
$this->db->bufferResults( $prev );
}
@@ -281,8 +285,8 @@ class WikiExporter {
// Freeing result
try {
- if ( $wrapper ) {
- $wrapper->free();
+ if ( $result ) {
+ $result->free();
}
} catch ( Exception $e2 ) {
// Already in panic mode -> ignoring $e2 as $e has
@@ -372,16 +376,15 @@ class WikiExporter {
$prev = $this->db->bufferResults( false );
}
- $wrapper = null; // Assuring $wrapper is not undefined, if exception occurs early
+ $result = null; // Assuring $result is not undefined, if exception occurs early
try {
wfRunHooks( 'ModifyExportQuery',
array( $this->db, &$tables, &$cond, &$opts, &$join ) );
# Do the query!
$result = $this->db->select( $tables, '*', $cond, __METHOD__, $opts, $join );
- $wrapper = $this->db->resultObject( $result );
# Output dump results
- $this->outputPageStream( $wrapper );
+ $this->outputPageStream( $result );
if ( $this->buffer == WikiExporter::STREAM ) {
$this->db->bufferResults( $prev );
@@ -392,8 +395,8 @@ class WikiExporter {
// Freeing result
try {
- if ( $wrapper ) {
- $wrapper->free();
+ if ( $result ) {
+ $result->free();
}
} catch ( Exception $e2 ) {
// Already in panic mode -> ignoring $e2 as $e has
@@ -427,7 +430,7 @@ class WikiExporter {
* separate database connection not managed by LoadBalancer; some
* blob storage types will make queries to pull source data.
*
- * @param $resultset ResultWrapper
+ * @param ResultWrapper $resultset
*/
protected function outputPageStream( $resultset ) {
$last = null;
@@ -462,7 +465,7 @@ class WikiExporter {
}
/**
- * @param $resultset array
+ * @param ResultWrapper $resultset
*/
protected function outputLogStream( $resultset ) {
foreach ( $resultset as $row ) {
@@ -478,7 +481,7 @@ class WikiExporter {
class XmlDumpWriter {
/**
* Returns the export schema version.
- * @deprecated in 1.20; use WikiExporter::schemaVersion() instead
+ * @deprecated since 1.20; use WikiExporter::schemaVersion() instead
* @return string
*/
function schemaVersion() {
@@ -502,8 +505,18 @@ class XmlDumpWriter {
return Xml::element( 'mediawiki', array(
'xmlns' => "http://www.mediawiki.org/xml/export-$ver/",
'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance",
+ /*
+ * When a new version of the schema is created, it needs staging on mediawiki.org.
+ * This requires a change in the operations/mediawiki-config git repo.
+ *
+ * Create a changeset like https://gerrit.wikimedia.org/r/#/c/149643/ in which
+ * you copy in the new xsd file.
+ *
+ * After it is reviewed, merged and deployed (sync-docroot), the index.html needs purging.
+ * echo "http://www.mediawiki.org/xml/index.html" | mwscript purgeList.php --wiki=aawiki
+ */
'xsi:schemaLocation' => "http://www.mediawiki.org/xml/export-$ver/ " .
- "http://www.mediawiki.org/xml/export-$ver.xsd", #TODO: how do we get a new version up there?
+ "http://www.mediawiki.org/xml/export-$ver.xsd",
'version' => $ver,
'xml:lang' => $wgLanguageCode ),
null ) .
@@ -517,6 +530,7 @@ class XmlDumpWriter {
function siteInfo() {
$info = array(
$this->sitename(),
+ $this->dbname(),
$this->homelink(),
$this->generator(),
$this->caseSetting(),
@@ -537,6 +551,14 @@ class XmlDumpWriter {
/**
* @return string
*/
+ function dbname() {
+ global $wgDBname;
+ return Xml::element( 'dbname', array(), $wgDBname );
+ }
+
+ /**
+ * @return string
+ */
function generator() {
global $wgVersion;
return Xml::element( 'generator', array(), "MediaWiki $wgVersion" );
@@ -591,11 +613,10 @@ class XmlDumpWriter {
* Opens a "<page>" section on the output stream, with data
* from the given database row.
*
- * @param $row object
+ * @param object $row
* @return string
- * @access private
*/
- function openPage( $row ) {
+ public function openPage( $row ) {
$out = " <page>\n";
$title = Title::makeTitle( $row->page_namespace, $row->page_title );
$out .= ' ' . Xml::elementClean( 'title', array(), self::canonicalTitle( $title ) ) . "\n";
@@ -604,8 +625,10 @@ class XmlDumpWriter {
if ( $row->page_is_redirect ) {
$page = WikiPage::factory( $title );
$redirect = $page->getRedirectTarget();
- if ( $redirect instanceOf Title && $redirect->isValidRedirectTarget() ) {
- $out .= ' ' . Xml::element( 'redirect', array( 'title' => self::canonicalTitle( $redirect ) ) ) . "\n";
+ if ( $redirect instanceof Title && $redirect->isValidRedirectTarget() ) {
+ $out .= ' ';
+ $out .= Xml::element( 'redirect', array( 'title' => self::canonicalTitle( $redirect ) ) );
+ $out .= "\n";
}
}
@@ -633,7 +656,7 @@ class XmlDumpWriter {
* Dumps a "<revision>" section on the output stream, with
* data filled in from the given database row.
*
- * @param $row object
+ * @param object $row
* @return string
* @access private
*/
@@ -663,12 +686,30 @@ class XmlDumpWriter {
$out .= " " . Xml::elementClean( 'comment', array(), strval( $row->rev_comment ) ) . "\n";
}
+ if ( isset( $row->rev_content_model ) && !is_null( $row->rev_content_model ) ) {
+ $content_model = strval( $row->rev_content_model );
+ } else {
+ // probably using $wgContentHandlerUseDB = false;
+ $title = Title::makeTitle( $row->page_namespace, $row->page_title );
+ $content_model = ContentHandler::getDefaultModelFor( $title );
+ }
+
+ $content_handler = ContentHandler::getForModelID( $content_model );
+
+ if ( isset( $row->rev_content_format ) && !is_null( $row->rev_content_format ) ) {
+ $content_format = strval( $row->rev_content_format );
+ } else {
+ // probably using $wgContentHandlerUseDB = false;
+ $content_format = $content_handler->getDefaultFormat();
+ }
+
$text = '';
if ( isset( $row->rev_deleted ) && ( $row->rev_deleted & Revision::DELETED_TEXT ) ) {
$out .= " " . Xml::element( 'text', array( 'deleted' => 'deleted' ) ) . "\n";
} elseif ( isset( $row->old_text ) ) {
// Raw text from the database may have invalid chars
$text = strval( Revision::getRevisionText( $row ) );
+ $text = $content_handler->exportTransform( $text, $content_format );
$out .= " " . Xml::elementClean( 'text',
array( 'xml:space' => 'preserve', 'bytes' => intval( $row->rev_len ) ),
strval( $text ) ) . "\n";
@@ -679,32 +720,16 @@ class XmlDumpWriter {
"" ) . "\n";
}
- if ( isset( $row->rev_sha1 ) && $row->rev_sha1 && !( $row->rev_deleted & Revision::DELETED_TEXT ) ) {
+ if ( isset( $row->rev_sha1 )
+ && $row->rev_sha1
+ && !( $row->rev_deleted & Revision::DELETED_TEXT )
+ ) {
$out .= " " . Xml::element( 'sha1', null, strval( $row->rev_sha1 ) ) . "\n";
} else {
$out .= " <sha1/>\n";
}
- if ( isset( $row->rev_content_model ) && !is_null( $row->rev_content_model ) ) {
- $content_model = strval( $row->rev_content_model );
- } else {
- // probably using $wgContentHandlerUseDB = false;
- // @todo test!
- $title = Title::makeTitle( $row->page_namespace, $row->page_title );
- $content_model = ContentHandler::getDefaultModelFor( $title );
- }
-
$out .= " " . Xml::element( 'model', null, strval( $content_model ) ) . "\n";
-
- if ( isset( $row->rev_content_format ) && !is_null( $row->rev_content_format ) ) {
- $content_format = strval( $row->rev_content_format );
- } else {
- // probably using $wgContentHandlerUseDB = false;
- // @todo test!
- $content_handler = ContentHandler::getForModelID( $content_model );
- $content_format = $content_handler->getDefaultFormat();
- }
-
$out .= " " . Xml::element( 'format', null, strval( $content_format ) ) . "\n";
wfRunHooks( 'XmlDumpWriterWriteRevision', array( &$this, &$out, $row, $text ) );
@@ -719,7 +744,7 @@ class XmlDumpWriter {
* Dumps a "<logitem>" section on the output stream, with
* data filled in from the given database row.
*
- * @param $row object
+ * @param object $row
* @return string
* @access private
*/
@@ -763,7 +788,7 @@ class XmlDumpWriter {
}
/**
- * @param $timestamp string
+ * @param string $timestamp
* @param string $indent Default to six spaces
* @return string
*/
@@ -773,8 +798,8 @@ class XmlDumpWriter {
}
/**
- * @param $id
- * @param $text string
+ * @param int $id
+ * @param string $text
* @param string $indent Default to six spaces
* @return string
*/
@@ -792,8 +817,8 @@ class XmlDumpWriter {
/**
* Warning! This data is potentially inconsistent. :(
- * @param $row
- * @param $dumpContents bool
+ * @param object $row
+ * @param bool $dumpContents
* @return string
*/
function writeUploads( $row, $dumpContents = false ) {
@@ -812,8 +837,8 @@ class XmlDumpWriter {
}
/**
- * @param $file File
- * @param $dumpContents bool
+ * @param File $file
+ * @param bool $dumpContents
* @return string
*/
function writeUpload( $file, $dumpContents = false ) {
@@ -827,7 +852,7 @@ class XmlDumpWriter {
$be = $file->getRepo()->getBackend();
# Dump file as base64
# Uses only XML-safe characters, so does not need escaping
- # @TODO: too bad this loads the contents into memory (script might swap)
+ # @todo Too bad this loads the contents into memory (script might swap)
$contents = ' <contents encoding="base64">' .
chunk_split( base64_encode(
$be->getFileContents( array( 'src' => $file->getPath() ) ) ) ) .
@@ -865,7 +890,7 @@ class XmlDumpWriter {
* @since 1.18
*/
public static function canonicalTitle( Title $title ) {
- if ( $title->getInterwiki() ) {
+ if ( $title->isExternal() ) {
return $title->getPrefixedText();
}
@@ -887,45 +912,45 @@ class XmlDumpWriter {
class DumpOutput {
/**
- * @param $string string
+ * @param string $string
*/
function writeOpenStream( $string ) {
$this->write( $string );
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
$this->write( $string );
}
/**
- * @param $page
- * @param $string string
+ * @param object $page
+ * @param string $string
*/
function writeOpenPage( $page, $string ) {
$this->write( $string );
}
/**
- * @param $string string
+ * @param string $string
*/
function writeClosePage( $string ) {
$this->write( $string );
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeRevision( $rev, $string ) {
$this->write( $string );
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeLogItem( $rev, $string ) {
$this->write( $string );
@@ -933,7 +958,7 @@ class DumpOutput {
/**
* Override to write to a different stream type.
- * @param $string string
+ * @param string $string
* @return bool
*/
function write( $string ) {
@@ -945,7 +970,7 @@ class DumpOutput {
* and reopen new file with the old name. Use this
* for writing out a file in multiple pieces
* at specified checkpoints (e.g. every n hours).
- * @param $newname mixed File name. May be a string or an array with one element
+ * @param string|array $newname File name. May be a string or an array with one element
*/
function closeRenameAndReopen( $newname ) {
}
@@ -954,8 +979,9 @@ class DumpOutput {
* Close the old file, and move it to a specified name.
* Use this for the last piece of a file written out
* at specified checkpoints (e.g. every n hours).
- * @param $newname mixed File name. May be a string or an array with one element
- * @param bool $open If true, a new file with the old filename will be opened again for writing (default: false)
+ * @param string|array $newname File name. May be a string or an array with one element
+ * @param bool $open If true, a new file with the old filename will be opened
+ * again for writing (default: false)
*/
function closeAndRename( $newname, $open = false ) {
}
@@ -978,7 +1004,7 @@ class DumpFileOutput extends DumpOutput {
protected $handle = false, $filename;
/**
- * @param $file
+ * @param string $file
*/
function __construct( $file ) {
$this->handle = fopen( $file, "wt" );
@@ -986,7 +1012,7 @@ class DumpFileOutput extends DumpOutput {
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
parent::writeCloseStream( $string );
@@ -997,21 +1023,21 @@ class DumpFileOutput extends DumpOutput {
}
/**
- * @param $string string
+ * @param string $string
*/
function write( $string ) {
fputs( $this->handle, $string );
}
/**
- * @param $newname
+ * @param string $newname
*/
function closeRenameAndReopen( $newname ) {
$this->closeAndRename( $newname, true );
}
/**
- * @param $newname
+ * @param string $newname
* @throws MWException
*/
function renameOrException( $newname ) {
@@ -1021,8 +1047,8 @@ class DumpFileOutput extends DumpOutput {
}
/**
- * @param $newname array
- * @return mixed
+ * @param array $newname
+ * @return string
* @throws MWException
*/
function checkRenameArgCount( $newname ) {
@@ -1037,8 +1063,8 @@ class DumpFileOutput extends DumpOutput {
}
/**
- * @param $newname mixed
- * @param $open bool
+ * @param string $newname
+ * @param bool $open
*/
function closeAndRename( $newname, $open = false ) {
$newname = $this->checkRenameArgCount( $newname );
@@ -1073,8 +1099,8 @@ class DumpPipeOutput extends DumpFileOutput {
protected $procOpenResource = false;
/**
- * @param $command
- * @param $file null
+ * @param string $command
+ * @param string $file
*/
function __construct( $command, $file = null ) {
if ( !is_null( $file ) ) {
@@ -1087,7 +1113,7 @@ class DumpPipeOutput extends DumpFileOutput {
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
parent::writeCloseStream( $string );
@@ -1098,7 +1124,7 @@ class DumpPipeOutput extends DumpFileOutput {
}
/**
- * @param $command
+ * @param string $command
*/
function startCommand( $command ) {
$spec = array(
@@ -1110,15 +1136,15 @@ class DumpPipeOutput extends DumpFileOutput {
}
/**
- * @param mixed $newname
+ * @param string $newname
*/
function closeRenameAndReopen( $newname ) {
$this->closeAndRename( $newname, true );
}
/**
- * @param $newname mixed
- * @param $open bool
+ * @param string $newname
+ * @param bool $open
*/
function closeAndRename( $newname, $open = false ) {
$newname = $this->checkRenameArgCount( $newname );
@@ -1139,7 +1165,6 @@ class DumpPipeOutput extends DumpFileOutput {
}
}
}
-
}
/**
@@ -1147,9 +1172,8 @@ class DumpPipeOutput extends DumpFileOutput {
* @ingroup Dump
*/
class DumpGZipOutput extends DumpPipeOutput {
-
/**
- * @param $file string
+ * @param string $file
*/
function __construct( $file ) {
parent::__construct( "gzip", $file );
@@ -1161,9 +1185,8 @@ class DumpGZipOutput extends DumpPipeOutput {
* @ingroup Dump
*/
class DumpBZip2Output extends DumpPipeOutput {
-
/**
- * @param $file string
+ * @param string $file
*/
function __construct( $file ) {
parent::__construct( "bzip2", $file );
@@ -1175,9 +1198,8 @@ class DumpBZip2Output extends DumpPipeOutput {
* @ingroup Dump
*/
class Dump7ZipOutput extends DumpPipeOutput {
-
/**
- * @param $file string
+ * @param string $file
*/
function __construct( $file ) {
$command = $this->setup7zCommand( $file );
@@ -1186,7 +1208,7 @@ class Dump7ZipOutput extends DumpPipeOutput {
}
/**
- * @param $file string
+ * @param string $file
* @return string
*/
function setup7zCommand( $file ) {
@@ -1198,8 +1220,8 @@ class Dump7ZipOutput extends DumpPipeOutput {
}
/**
- * @param $newname string
- * @param $open bool
+ * @param string $newname
+ * @param bool $open
*/
function closeAndRename( $newname, $open = false ) {
$newname = $this->checkRenameArgCount( $newname );
@@ -1222,7 +1244,6 @@ class Dump7ZipOutput extends DumpPipeOutput {
* @ingroup Dump
*/
class DumpFilter {
-
/**
* @var DumpOutput
* FIXME will need to be made protected whenever legacy code
@@ -1236,29 +1257,29 @@ class DumpFilter {
protected $sendingThisPage;
/**
- * @param $sink DumpOutput
+ * @param DumpOutput $sink
*/
function __construct( &$sink ) {
$this->sink =& $sink;
}
/**
- * @param $string string
+ * @param string $string
*/
function writeOpenStream( $string ) {
$this->sink->writeOpenStream( $string );
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
$this->sink->writeCloseStream( $string );
}
/**
- * @param $page
- * @param $string string
+ * @param object $page
+ * @param string $string
*/
function writeOpenPage( $page, $string ) {
$this->sendingThisPage = $this->pass( $page, $string );
@@ -1268,7 +1289,7 @@ class DumpFilter {
}
/**
- * @param $string string
+ * @param string $string
*/
function writeClosePage( $string ) {
if ( $this->sendingThisPage ) {
@@ -1278,8 +1299,8 @@ class DumpFilter {
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeRevision( $rev, $string ) {
if ( $this->sendingThisPage ) {
@@ -1288,23 +1309,23 @@ class DumpFilter {
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeLogItem( $rev, $string ) {
$this->sink->writeRevision( $rev, $string );
}
/**
- * @param $newname string
+ * @param string $newname
*/
function closeRenameAndReopen( $newname ) {
$this->sink->closeRenameAndReopen( $newname );
}
/**
- * @param $newname string
- * @param $open bool
+ * @param string $newname
+ * @param bool $open
*/
function closeAndRename( $newname, $open = false ) {
$this->sink->closeAndRename( $newname, $open );
@@ -1319,7 +1340,7 @@ class DumpFilter {
/**
* Override for page-based filter types.
- * @param $page
+ * @param object $page
* @return bool
*/
function pass( $page ) {
@@ -1332,9 +1353,8 @@ class DumpFilter {
* @ingroup Dump
*/
class DumpNotalkFilter extends DumpFilter {
-
/**
- * @param $page
+ * @param object $page
* @return bool
*/
function pass( $page ) {
@@ -1347,12 +1367,15 @@ class DumpNotalkFilter extends DumpFilter {
* @ingroup Dump
*/
class DumpNamespaceFilter extends DumpFilter {
- var $invert = false;
- var $namespaces = array();
+ /** @var bool */
+ public $invert = false;
+
+ /** @var array */
+ public $namespaces = array();
/**
- * @param $sink DumpOutput
- * @param $param
+ * @param DumpOutput $sink
+ * @param array $param
* @throws MWException
*/
function __construct( &$sink, $param ) {
@@ -1398,7 +1421,7 @@ class DumpNamespaceFilter extends DumpFilter {
}
/**
- * @param $page
+ * @param object $page
* @return bool
*/
function pass( $page ) {
@@ -1412,11 +1435,17 @@ class DumpNamespaceFilter extends DumpFilter {
* @ingroup Dump
*/
class DumpLatestFilter extends DumpFilter {
- var $page, $pageString, $rev, $revString;
+ public $page;
+
+ public $pageString;
+
+ public $rev;
+
+ public $revString;
/**
- * @param $page
- * @param $string string
+ * @param object $page
+ * @param string $string
*/
function writeOpenPage( $page, $string ) {
$this->page = $page;
@@ -1424,7 +1453,7 @@ class DumpLatestFilter extends DumpFilter {
}
/**
- * @param $string string
+ * @param string $string
*/
function writeClosePage( $string ) {
if ( $this->rev ) {
@@ -1439,8 +1468,8 @@ class DumpLatestFilter extends DumpFilter {
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeRevision( $rev, $string ) {
if ( $rev->rev_id == $this->page->page_latest ) {
@@ -1457,7 +1486,7 @@ class DumpLatestFilter extends DumpFilter {
class DumpMultiWriter {
/**
- * @param $sinks
+ * @param array $sinks
*/
function __construct( $sinks ) {
$this->sinks = $sinks;
@@ -1465,7 +1494,7 @@ class DumpMultiWriter {
}
/**
- * @param $string string
+ * @param string $string
*/
function writeOpenStream( $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
@@ -1474,7 +1503,7 @@ class DumpMultiWriter {
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
@@ -1483,8 +1512,8 @@ class DumpMultiWriter {
}
/**
- * @param $page
- * @param $string string
+ * @param object $page
+ * @param string $string
*/
function writeOpenPage( $page, $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
@@ -1493,7 +1522,7 @@ class DumpMultiWriter {
}
/**
- * @param $string
+ * @param string $string
*/
function writeClosePage( $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
@@ -1502,8 +1531,8 @@ class DumpMultiWriter {
}
/**
- * @param $rev
- * @param $string
+ * @param object $rev
+ * @param string $string
*/
function writeRevision( $rev, $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
@@ -1512,14 +1541,14 @@ class DumpMultiWriter {
}
/**
- * @param $newnames
+ * @param array $newnames
*/
function closeRenameAndReopen( $newnames ) {
$this->closeAndRename( $newnames, true );
}
/**
- * @param $newnames array
+ * @param array $newnames
* @param bool $open
*/
function closeAndRename( $newnames, $open = false ) {
@@ -1538,24 +1567,4 @@ class DumpMultiWriter {
}
return $filenames;
}
-
-}
-
-/**
- * @param $string string
- * @return string
- */
-function xmlsafe( $string ) {
- wfProfileIn( __FUNCTION__ );
-
- /**
- * The page may contain old data which has not been properly normalized.
- * Invalid UTF-8 sequences or forbidden control characters will make our
- * XML output invalid, so be sure to strip them out.
- */
- $string = UtfNormal::cleanUp( $string );
-
- $string = htmlspecialchars( $string );
- wfProfileOut( __FUNCTION__ );
- return $string;
}