* @file
* @ingroup Parser
*/
+use MediaWiki\BadFileLookup;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Linker\LinkRenderer;
use MediaWiki\Linker\LinkRendererFactory;
/** @var LoggerInterface */
private $logger;
+ /** @var BadFileLookup */
+ private $badFileLookup;
+
/**
* TODO Make this a const when HHVM support is dropped (T192166)
*
* @param LinkRendererFactory|null $linkRendererFactory
* @param NamespaceInfo|null $nsInfo
* @param LoggerInterface|null $logger
+ * @param BadFileLookup|null $badFileLookup
*/
public function __construct(
$svcOptions = null,
SpecialPageFactory $spFactory = null,
$linkRendererFactory = null,
$nsInfo = null,
- $logger = null
+ $logger = null,
+ BadFileLookup $badFileLookup = null
) {
- $services = MediaWikiServices::getInstance();
if ( !$svcOptions || is_array( $svcOptions ) ) {
// Pre-1.34 calling convention is the first parameter is just ParserConf, the seventh is
// Config, and the eighth is LinkRendererFactory.
$this->mConf['preprocessorClass'] = self::getDefaultPreprocessorClass();
}
$this->svcOptions = new ServiceOptions( self::$constructorOptions,
- $this->mConf,
- func_num_args() > 6 ? func_get_arg( 6 ) : $services->getMainConfig()
+ $this->mConf, func_num_args() > 6
+ ? func_get_arg( 6 ) : MediaWikiServices::getInstance()->getMainConfig()
);
$linkRendererFactory = func_num_args() > 7 ? func_get_arg( 7 ) : null;
$nsInfo = func_num_args() > 8 ? func_get_arg( 8 ) : null;
self::EXT_LINK_URL_CLASS . '*)\p{Zs}*([^\]\\x00-\\x08\\x0a-\\x1F\\x{FFFD}]*?)\]/Su';
$this->magicWordFactory = $magicWordFactory ??
- $services->getMagicWordFactory();
+ MediaWikiServices::getInstance()->getMagicWordFactory();
- $this->contLang = $contLang ?? $services->getContentLanguage();
+ $this->contLang = $contLang ?? MediaWikiServices::getInstance()->getContentLanguage();
- $this->factory = $factory ?? $services->getParserFactory();
- $this->specialPageFactory = $spFactory ?? $services->getSpecialPageFactory();
- $this->linkRendererFactory = $linkRendererFactory ?? $services->getLinkRendererFactory();
- $this->nsInfo = $nsInfo ?? $services->getNamespaceInfo();
+ $this->factory = $factory ?? MediaWikiServices::getInstance()->getParserFactory();
+ $this->specialPageFactory = $spFactory ??
+ MediaWikiServices::getInstance()->getSpecialPageFactory();
+ $this->linkRendererFactory = $linkRendererFactory ??
+ MediaWikiServices::getInstance()->getLinkRendererFactory();
+ $this->nsInfo = $nsInfo ?? MediaWikiServices::getInstance()->getNamespaceInfo();
$this->logger = $logger ?: new NullLogger();
+ $this->badFileLookup = $badFileLookup ??
+ MediaWikiServices::getInstance()->getBadFileLookup();
}
/**
* @param ParserOptions $options
* @param bool $linestart
* @param bool $clearState
- * @param int|null $revid Number to pass in {{REVISIONID}}
+ * @param int|null $revid ID of the revision being rendered. This is used to render
+ * REVISION* magic words. 0 means that any current revision will be used. Null means
+ * that {{REVISIONID}}/{{REVISIONUSER}} will be empty and {{REVISIONTIMESTAMP}} will
+ * use the current timestamp.
* @return ParserOutput A ParserOutput
* @return-taint escaped
*/
}
if ( $ns == NS_FILE ) {
- if ( !wfIsBadImage( $nt->getDBkey(), $this->mTitle ) ) {
+ if ( !$this->badFileLookup->isBadFile( $nt->getDBkey(), $this->mTitle ) ) {
if ( $wasblank ) {
# if no parameters were passed, $text
# becomes something like "File:Foo.png",