* @file
*/
+use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\FakeResultWrapper;
/**
* @ingroup Media
*/
class WikiFilePage extends WikiPage {
- /** @var File */
+ /** @var File|false */
protected $mFile = false;
- /** @var LocalRepo */
+ /** @var LocalRepo|null */
protected $mRepo = null;
/** @var bool */
protected $mFileLoaded = false;
- /** @var array */
+ /** @var array|null */
protected $mDupes = null;
public function __construct( $title ) {
* @return bool
*/
protected function loadFile() {
+ $services = MediaWikiServices::getInstance();
if ( $this->mFileLoaded ) {
return true;
}
$this->mFileLoaded = true;
- $this->mFile = wfFindFile( $this->mTitle );
+ $this->mFile = $services->getRepoGroup()->findFile( $this->mTitle );
if ( !$this->mFile ) {
- $this->mFile = wfLocalFile( $this->mTitle ); // always a File
+ $this->mFile = $services->getRepoGroup()->getLocalRepo()
+ ->newFile( $this->mTitle ); // always a File
}
$this->mRepo = $this->mFile->getRepo();
return true;
$size = $this->mFile->getSize();
/**
- * @var $file File
+ * @var File $file
*/
foreach ( $dupes as $index => $file ) {
$key = $file->getRepoName() . ':' . $file->getName();
if ( $this->mFile->exists() ) {
wfDebug( 'ImagePage::doPurge purging ' . $this->mFile->getName() . "\n" );
- DeferredUpdates::addUpdate(
- new HTMLCacheUpdate( $this->mTitle, 'imagelinks', 'file-purge' )
+ $job = HTMLCacheUpdateJob::newForBacklinks(
+ $this->mTitle,
+ 'imagelinks',
+ [ 'causeAction' => 'file-purge' ]
);
+ JobQueueGroup::singleton()->lazyPush( $job );
} else {
wfDebug( 'ImagePage::doPurge no image for '
. $this->mFile->getName() . "; limiting purge to cache only\n" );