MediaWiki  master
WikiImporter Class Reference

XML file reader for the page data importer. More...

Collaboration diagram for WikiImporter:

Public Member Functions

 __construct (ImportSource $source, Config $config)
 Creates an ImportXMLReader drawing from the source provided. More...
 
 beforeImportPage ( $titleAndForeignTitle)
 Default per-page callback. More...
 
 debug ( $data)
 
 debugRevisionHandler (&$revision)
 Alternate per-revision callback, for debugging. More...
 
 disableStatisticsUpdate ()
 Statistics update can cause a lot of time. More...
 
 doImport ()
 Primary entry point. More...
 
 finishImportPage ( $title, $foreignTitle, $revCount, $sRevCount, $pageInfo)
 Mostly for hook use. More...
 
 getReader ()
 
 importLogItem ( $revision)
 Default per-revision callback, performs the import. More...
 
 importRevision ( $revision)
 Default per-revision callback, performs the import. More...
 
 importUpload ( $revision)
 Dummy for now... More...
 
 nodeAttribute ( $attr)
 Retrieves the contents of the named attribute of the current element. More...
 
 nodeContents ()
 Shouldn't something like this be built-in to XMLReader? Fetches text contents of the current element, assuming no sub-elements or such scary things. More...
 
 notice ( $msg,... $params)
 
 pageCallback ( $title)
 Notify the callback function when a new "<page>" is reached. More...
 
 setDebug ( $debug)
 Set debug mode... More...
 
 setImageBasePath ( $dir)
 
 setImportTitleFactory ( $factory)
 Sets the factory object to use to convert ForeignTitle objects into local Title objects. More...
 
 setImportUploads ( $import)
 
 setLogItemCallback ( $callback)
 Sets the action to perform as each log item reached. More...
 
 setNoticeCallback ( $callback)
 Set a callback that displays notice messages. More...
 
 setNoUpdates ( $noupdates)
 Set 'no updates' mode. More...
 
 setPageCallback ( $callback)
 Sets the action to perform as each new page in the stream is reached. More...
 
 setPageOffset ( $nthPage)
 Sets 'pageOffset' value. More...
 
 setPageOutCallback ( $callback)
 Sets the action to perform as each page in the stream is completed. More...
 
 setRevisionCallback ( $callback)
 Sets the action to perform as each page revision is reached. More...
 
 setSiteInfoCallback ( $callback)
 Sets the action to perform when site info is encountered. More...
 
 setTargetNamespace ( $namespace)
 Set a target namespace to override the defaults. More...
 
 setTargetRootPage ( $rootpage)
 Set a target root page under which all pages are imported. More...
 
 setUploadCallback ( $callback)
 Sets the action to perform as each file upload version is reached. More...
 
 setUsernamePrefix ( $usernamePrefix, $assignKnownUsers)
 
 throwXmlError ( $err)
 
 warn ( $data)
 

Public Attributes

 $mDebug
 
 $mImageBasePath
 
 $mPageCallback
 
 $mPageOutCallback
 
 $mRevisionCallback
 
 $mUploadCallback
 

Private Member Functions

 dumpTemp ( $contents)
 
 handleContributor ()
 
 handleLogItem ()
 
 handlePage ()
 
 handleRevision (&$pageInfo)
 
 handleSiteInfo ()
 
 handleUpload (&$pageInfo)
 
 logItemCallback ( $revision)
 Notify the callback function of a new log item. More...
 
 pageOutCallback ( $title, $foreignTitle, $revCount, $sucCount, $pageInfo)
 Notify the callback function when a "</page>" is closed. More...
 
 processLogItem ( $logInfo)
 
 processRevision ( $pageInfo, $revisionInfo)
 
 processTitle ( $text, $ns=null)
 
 processUpload ( $pageInfo, $uploadInfo)
 
 revisionCallback ( $revision)
 Notify the callback function of a revision. More...
 
 siteInfoCallback ( $siteInfo)
 Notify the callback function of site info. More...
 

Private Attributes

Config $config
 
array $countableCache = []
 
bool $disableStatisticsUpdate = false
 
ExternalUserNames $externalUserNames
 
 $foreignNamespaces = null
 
ImportTitleFactory $importTitleFactory
 
 $mImportUploads
 
 $mLogItemCallback
 
 $mNoticeCallback
 
 $mNoUpdates = false
 
 $mSiteInfoCallback
 
 $pageOffset = 0
 
 $reader = null
 

Detailed Description

XML file reader for the page data importer.

implements Special:Import

Definition at line 35 of file WikiImporter.php.

Constructor & Destructor Documentation

◆ __construct()

WikiImporter::__construct ( ImportSource  $source,
Config  $config 
)

Creates an ImportXMLReader drawing from the source provided.

Parameters
ImportSource$source
Config$config
Exceptions
Exception

Definition at line 61 of file WikiImporter.php.

References $config, class, null, UploadSourceAdapter\registerSource(), setLogItemCallback(), setPageCallback(), setPageOutCallback(), setRevisionCallback(), and setUploadCallback().

Member Function Documentation

◆ beforeImportPage()

WikiImporter::beforeImportPage (   $titleAndForeignTitle)

Default per-page callback.

Sets up some things related to site statistics

Parameters
array$titleAndForeignTitleTwo-element array, with Title object at index 0 and ForeignTitle object at index 1
Returns
bool

Definition at line 341 of file WikiImporter.php.

References $title, and WikiPage\factory().

◆ debug()

WikiImporter::debug (   $data)

◆ debugRevisionHandler()

WikiImporter::debugRevisionHandler ( $revision)

Alternate per-revision callback, for debugging.

Parameters
WikiRevision&$revision

Definition at line 440 of file WikiImporter.php.

References debug().

◆ disableStatisticsUpdate()

WikiImporter::disableStatisticsUpdate ( )

Statistics update can cause a lot of time.

Since
1.29

Definition at line 331 of file WikiImporter.php.

Referenced by finishImportPage().

◆ doImport()

WikiImporter::doImport ( )

Primary entry point.

Exceptions
Exception
MWException
Returns
bool

Definition at line 564 of file WikiImporter.php.

References $type, debug(), handleLogItem(), handlePage(), handleSiteInfo(), null, Hooks\run(), and warn().

◆ dumpTemp()

WikiImporter::dumpTemp (   $contents)
private
Parameters
string$contents
Returns
string

Definition at line 999 of file WikiImporter.php.

References wfTempDir().

Referenced by handleUpload().

◆ finishImportPage()

WikiImporter::finishImportPage (   $title,
  $foreignTitle,
  $revCount,
  $sRevCount,
  $pageInfo 
)

Mostly for hook use.

Parameters
Title$title
ForeignTitle$foreignTitle
int$revCount
int$sRevCount
array$pageInfo
Returns
bool

Definition at line 404 of file WikiImporter.php.

References $content, $title, DeferredUpdates\addUpdate(), disableStatisticsUpdate(), SiteStatsUpdate\factory(), WikiPage\factory(), null, Hooks\run(), and wfDebug().

◆ getReader()

WikiImporter::getReader ( )
Returns
null|XMLReader

Definition at line 104 of file WikiImporter.php.

References $reader.

◆ handleContributor()

WikiImporter::handleContributor ( )
private
Returns
array

Definition at line 1049 of file WikiImporter.php.

References nodeContents().

Referenced by handleLogItem(), handleRevision(), and handleUpload().

◆ handleLogItem()

WikiImporter::handleLogItem ( )
private

Definition at line 664 of file WikiImporter.php.

References debug(), handleContributor(), nodeContents(), processLogItem(), Hooks\run(), and warn().

Referenced by doImport().

◆ handlePage()

WikiImporter::handlePage ( )
private

◆ handleRevision()

WikiImporter::handleRevision ( $pageInfo)
private
Parameters
array$pageInfo

Definition at line 825 of file WikiImporter.php.

References debug(), handleContributor(), nodeContents(), processRevision(), Hooks\run(), and warn().

Referenced by handlePage().

◆ handleSiteInfo()

WikiImporter::handleSiteInfo ( )
private

Definition at line 637 of file WikiImporter.php.

References $foreignNamespaces, debug(), nodeAttribute(), nodeContents(), and siteInfoCallback().

Referenced by doImport().

◆ handleUpload()

WikiImporter::handleUpload ( $pageInfo)
private
Parameters
array$pageInfo
Returns
mixed

Definition at line 944 of file WikiImporter.php.

References $path, debug(), dumpTemp(), handleContributor(), nodeContents(), processUpload(), Hooks\run(), and warn().

Referenced by handlePage().

◆ importLogItem()

WikiImporter::importLogItem (   $revision)

Default per-revision callback, performs the import.

Parameters
WikiRevision$revision
Returns
bool

Definition at line 382 of file WikiImporter.php.

◆ importRevision()

WikiImporter::importRevision (   $revision)

Default per-revision callback, performs the import.

Parameters
WikiRevision$revision
Returns
bool

Definition at line 353 of file WikiImporter.php.

References notice().

◆ importUpload()

WikiImporter::importUpload (   $revision)

Dummy for now...

Parameters
WikiRevision$revision
Returns
bool

Definition at line 391 of file WikiImporter.php.

◆ logItemCallback()

WikiImporter::logItemCallback (   $revision)
private

Notify the callback function of a new log item.

Parameters
WikiRevision$revision
Returns
bool|mixed

Definition at line 511 of file WikiImporter.php.

Referenced by processLogItem().

◆ nodeAttribute()

WikiImporter::nodeAttribute (   $attr)

Retrieves the contents of the named attribute of the current element.

Parameters
string$attrThe name of the attribute
Returns
string The value of the attribute or an empty string if it is not set in the current element.

Definition at line 526 of file WikiImporter.php.

Referenced by handlePage(), and handleSiteInfo().

◆ nodeContents()

WikiImporter::nodeContents ( )

Shouldn't something like this be built-in to XMLReader? Fetches text contents of the current element, assuming no sub-elements or such scary things.

Returns
string
Access:
private

Definition at line 537 of file WikiImporter.php.

References $buffer.

Referenced by handleContributor(), handleLogItem(), handlePage(), handleRevision(), handleSiteInfo(), and handleUpload().

◆ notice()

WikiImporter::notice (   $msg,
  $params 
)

Definition at line 123 of file WikiImporter.php.

References $params, text, wfDebug(), and wfMessage().

Referenced by importRevision(), and processTitle().

◆ pageCallback()

WikiImporter::pageCallback (   $title)

Notify the callback function when a new "<page>" is reached.

Parameters
Title$title

Definition at line 471 of file WikiImporter.php.

References $title.

Referenced by handlePage().

◆ pageOutCallback()

WikiImporter::pageOutCallback (   $title,
  $foreignTitle,
  $revCount,
  $sucCount,
  $pageInfo 
)
private

Notify the callback function when a "</page>" is closed.

Parameters
Title$title
ForeignTitle$foreignTitle
int$revCount
int$sucCountNumber of revisions for which callback returned true
array$pageInfoAssociative array of page information

Definition at line 485 of file WikiImporter.php.

Referenced by handlePage().

◆ processLogItem()

WikiImporter::processLogItem (   $logInfo)
private
Parameters
array$logInfo
Returns
bool|mixed

Definition at line 700 of file WikiImporter.php.

References logItemCallback(), and Title\newFromText().

Referenced by handleLogItem().

◆ processRevision()

WikiImporter::processRevision (   $pageInfo,
  $revisionInfo 
)
private
Parameters
array$pageInfo
array$revisionInfo
Exceptions
MWException
Returns
bool|mixed

Definition at line 867 of file WikiImporter.php.

References $handler, $wgMaxArticleSize, revisionCallback(), and wfTimestampNow().

Referenced by handleRevision().

◆ processTitle()

WikiImporter::processTitle (   $text,
  $ns = null 
)
private
Parameters
string$text
string | null$ns
Returns
array|bool

Definition at line 1077 of file WikiImporter.php.

References $title, and notice().

Referenced by handlePage().

◆ processUpload()

WikiImporter::processUpload (   $pageInfo,
  $uploadInfo 
)
private
Parameters
array$pageInfo
array$uploadInfo
Returns
mixed

Definition at line 1010 of file WikiImporter.php.

Referenced by handleUpload().

◆ revisionCallback()

WikiImporter::revisionCallback (   $revision)
private

Notify the callback function of a revision.

Parameters
WikiRevision$revision
Returns
bool|mixed

Definition at line 497 of file WikiImporter.php.

Referenced by processRevision().

◆ setDebug()

WikiImporter::setDebug (   $debug)

Set debug mode...

Parameters
bool$debug

Definition at line 137 of file WikiImporter.php.

References $debug.

Referenced by ImportLinkCacheIntegrationTest\doImport().

◆ setImageBasePath()

WikiImporter::setImageBasePath (   $dir)
Parameters
string$dir

Definition at line 307 of file WikiImporter.php.

◆ setImportTitleFactory()

WikiImporter::setImportTitleFactory (   $factory)

Sets the factory object to use to convert ForeignTitle objects into local Title objects.

Parameters
ImportTitleFactory$factory

Definition at line 244 of file WikiImporter.php.

Referenced by setTargetNamespace(), and setTargetRootPage().

◆ setImportUploads()

WikiImporter::setImportUploads (   $import)
Parameters
bool$import

Definition at line 314 of file WikiImporter.php.

◆ setLogItemCallback()

WikiImporter::setLogItemCallback (   $callback)

Sets the action to perform as each log item reached.

Parameters
callable$callback
Returns
callable

Definition at line 222 of file WikiImporter.php.

References $mLogItemCallback.

Referenced by __construct().

◆ setNoticeCallback()

WikiImporter::setNoticeCallback (   $callback)

Set a callback that displays notice messages.

Parameters
callable$callback
Returns
callable

Definition at line 165 of file WikiImporter.php.

References wfSetVar().

◆ setNoUpdates()

WikiImporter::setNoUpdates (   $noupdates)

Set 'no updates' mode.

In this mode, the link tables will not be updated by the importer

Parameters
bool$noupdates

Definition at line 145 of file WikiImporter.php.

◆ setPageCallback()

WikiImporter::setPageCallback (   $callback)

Sets the action to perform as each new page in the stream is reached.

Parameters
callable$callback
Returns
callable

Definition at line 174 of file WikiImporter.php.

References $mPageCallback.

Referenced by __construct().

◆ setPageOffset()

WikiImporter::setPageOffset (   $nthPage)

Sets 'pageOffset' value.

So it will skip the first n-1 pages and start from the nth page. It's 1-based indexing.

Parameters
int$nthPage
Since
1.29

Definition at line 155 of file WikiImporter.php.

◆ setPageOutCallback()

WikiImporter::setPageOutCallback (   $callback)

Sets the action to perform as each page in the stream is completed.

Callback accepts the page title (as a Title object), a second object with the original title form (in case it's been overridden into a local namespace), and a count of revisions.

Parameters
callable$callback
Returns
callable

Definition at line 189 of file WikiImporter.php.

References $mPageOutCallback.

Referenced by __construct().

◆ setRevisionCallback()

WikiImporter::setRevisionCallback (   $callback)

Sets the action to perform as each page revision is reached.

Parameters
callable$callback
Returns
callable

Definition at line 200 of file WikiImporter.php.

References $mRevisionCallback.

Referenced by __construct().

◆ setSiteInfoCallback()

WikiImporter::setSiteInfoCallback (   $callback)

Sets the action to perform when site info is encountered.

Parameters
callable$callback
Returns
callable

Definition at line 233 of file WikiImporter.php.

References $mSiteInfoCallback.

◆ setTargetNamespace()

WikiImporter::setTargetNamespace (   $namespace)

Set a target namespace to override the defaults.

Parameters
null | int$namespace
Returns
bool

Definition at line 253 of file WikiImporter.php.

References setImportTitleFactory().

Referenced by SpecialImport\doImport(), ApiImport\execute(), and setTargetRootPage().

◆ setTargetRootPage()

WikiImporter::setTargetRootPage (   $rootpage)

Set a target root page under which all pages are imported.

Parameters
null | string$rootpage
Returns
Status

Definition at line 275 of file WikiImporter.php.

References $title, Title\newFromText(), StatusValue\newGood(), NS_MAIN, null, setImportTitleFactory(), setTargetNamespace(), and wfMessage().

◆ setUploadCallback()

WikiImporter::setUploadCallback (   $callback)

Sets the action to perform as each file upload version is reached.

Parameters
callable$callback
Returns
callable

Definition at line 211 of file WikiImporter.php.

References $mUploadCallback.

Referenced by __construct().

◆ setUsernamePrefix()

WikiImporter::setUsernamePrefix (   $usernamePrefix,
  $assignKnownUsers 
)
Since
1.31
Parameters
string$usernamePrefixPrefix to apply to unknown (and possibly also known) usernames
bool$assignKnownUsersWhether to apply the prefix to usernames that exist locally

Definition at line 323 of file WikiImporter.php.

◆ siteInfoCallback()

WikiImporter::siteInfoCallback (   $siteInfo)
private

Notify the callback function of site info.

Parameters
array$siteInfo
Returns
bool|mixed

Definition at line 458 of file WikiImporter.php.

Referenced by handleSiteInfo().

◆ throwXmlError()

WikiImporter::throwXmlError (   $err)

Definition at line 108 of file WikiImporter.php.

References debug(), and wfDebug().

◆ warn()

WikiImporter::warn (   $data)

Definition at line 119 of file WikiImporter.php.

References wfDebug().

Referenced by doImport(), handleLogItem(), handlePage(), handleRevision(), and handleUpload().

Member Data Documentation

◆ $config

Config WikiImporter::$config
private

Definition at line 45 of file WikiImporter.php.

Referenced by __construct().

◆ $countableCache

array WikiImporter::$countableCache = []
private

Definition at line 49 of file WikiImporter.php.

◆ $disableStatisticsUpdate

bool WikiImporter::$disableStatisticsUpdate = false
private

Definition at line 51 of file WikiImporter.php.

◆ $externalUserNames

ExternalUserNames WikiImporter::$externalUserNames
private

Definition at line 53 of file WikiImporter.php.

◆ $foreignNamespaces

WikiImporter::$foreignNamespaces = null
private

Definition at line 37 of file WikiImporter.php.

Referenced by handleSiteInfo().

◆ $importTitleFactory

ImportTitleFactory WikiImporter::$importTitleFactory
private

Definition at line 47 of file WikiImporter.php.

◆ $mDebug

WikiImporter::$mDebug

Definition at line 40 of file WikiImporter.php.

◆ $mImageBasePath

WikiImporter::$mImageBasePath

Definition at line 41 of file WikiImporter.php.

◆ $mImportUploads

WikiImporter::$mImportUploads
private

Definition at line 41 of file WikiImporter.php.

◆ $mLogItemCallback

WikiImporter::$mLogItemCallback
private

Definition at line 38 of file WikiImporter.php.

Referenced by setLogItemCallback().

◆ $mNoticeCallback

WikiImporter::$mNoticeCallback
private

Definition at line 40 of file WikiImporter.php.

◆ $mNoUpdates

WikiImporter::$mNoUpdates = false
private

Definition at line 42 of file WikiImporter.php.

◆ $mPageCallback

WikiImporter::$mPageCallback

Definition at line 38 of file WikiImporter.php.

Referenced by setPageCallback().

◆ $mPageOutCallback

WikiImporter::$mPageOutCallback

Definition at line 39 of file WikiImporter.php.

Referenced by setPageOutCallback().

◆ $mRevisionCallback

WikiImporter::$mRevisionCallback

Definition at line 38 of file WikiImporter.php.

Referenced by setRevisionCallback().

◆ $mSiteInfoCallback

WikiImporter::$mSiteInfoCallback
private

Definition at line 39 of file WikiImporter.php.

Referenced by setSiteInfoCallback().

◆ $mUploadCallback

WikiImporter::$mUploadCallback

Definition at line 38 of file WikiImporter.php.

Referenced by setUploadCallback().

◆ $pageOffset

WikiImporter::$pageOffset = 0
private

Definition at line 43 of file WikiImporter.php.

◆ $reader

WikiImporter::$reader = null
private

Definition at line 36 of file WikiImporter.php.

Referenced by getReader().


The documentation for this class was generated from the following file: