/** @var LinkRendererFactory */
private $linkRendererFactory;
+ /** @var NamespaceInfo */
+ private $nsInfo;
+
/**
* @param array $parserConf See $wgParserConf documentation
* @param MagicWordFactory|null $magicWordFactory
* @param SpecialPageFactory|null $spFactory
* @param Config|null $siteConfig
* @param LinkRendererFactory|null $linkRendererFactory
+ * @param NamespaceInfo|null $nsInfo
*/
public function __construct(
array $parserConf = [], MagicWordFactory $magicWordFactory = null,
Language $contLang = null, ParserFactory $factory = null, $urlProtocols = null,
SpecialPageFactory $spFactory = null, Config $siteConfig = null,
- LinkRendererFactory $linkRendererFactory = null
+ LinkRendererFactory $linkRendererFactory = null,
+ NamespaceInfo $nsInfo = null
) {
$this->mConf = $parserConf;
$this->mUrlProtocols = $urlProtocols ?? wfUrlProtocols();
$this->factory = $factory ?? $services->getParserFactory();
$this->specialPageFactory = $spFactory ?? $services->getSpecialPageFactory();
- $this->siteConfig = $siteConfig ?? MediaWikiServices::getInstance()->getMainConfig();
-
+ $this->siteConfig = $siteConfig ?? $services->getMainConfig();
$this->linkRendererFactory =
- $linkRendererFactory ?? MediaWikiServices::getInstance()->getLinkRendererFactory();
+ $linkRendererFactory ?? $services->getLinkRendererFactory();
+ $this->nsInfo = $nsInfo ?? $services->getNamespaceInfo();
}
/**
*/
public function areSubpagesAllowed() {
# Some namespaces don't allow subpages
- return MWNamespace::hasSubpages( $this->mTitle->getNamespace() );
+ return $this->nsInfo->hasSubpages( $this->mTitle->getNamespace() );
}
/**
$this->siteConfig->get( 'MiserMode' ) &&
!$this->mOptions->getInterfaceMessage() &&
// @TODO: disallow this word on all namespaces
- MWNamespace::isContent( $this->mTitle->getNamespace() )
+ $this->nsInfo->isContent( $this->mTitle->getNamespace() )
) {
return $this->mRevisionId ? '-' : '';
};
);
}
}
- } elseif ( MWNamespace::isNonincludable( $title->getNamespace() ) ) {
+ } elseif ( $this->nsInfo->isNonincludable( $title->getNamespace() ) ) {
$found = false; # access denied
wfDebug( __METHOD__ . ": template inclusion denied for " .
$title->getPrefixedDBkey() . "\n" );
* @ingroup Parser
*/
use MediaWiki\Linker\LinkRendererFactory;
-
+use MediaWiki\MediaWikiServices;
use MediaWiki\Special\SpecialPageFactory;
/**
/** @var LinkRendererFactory */
private $linkRendererFactory;
+ /** @var NamespaceInfo */
+ private $nsInfo;
+
/**
* @param array $parserConf See $wgParserConf documentation
* @param MagicWordFactory $magicWordFactory
* @param SpecialPageFactory $spFactory
* @param Config $siteConfig
* @param LinkRendererFactory $linkRendererFactory
+ * @param NamespaceInfo|null $nsInfo
* @since 1.32
*/
public function __construct(
array $parserConf, MagicWordFactory $magicWordFactory, Language $contLang, $urlProtocols,
- SpecialPageFactory $spFactory, Config $siteConfig, LinkRendererFactory $linkRendererFactory
+ SpecialPageFactory $spFactory, Config $siteConfig,
+ LinkRendererFactory $linkRendererFactory, NamespaceInfo $nsInfo = null
) {
+ if ( !$nsInfo ) {
+ wfDeprecated( __METHOD__ . ' with no NamespaceInfo argument', '1.34' );
+ $nsInfo = MediaWikiServices::getInstance()->getNamespaceInfo();
+ }
$this->parserConf = $parserConf;
$this->magicWordFactory = $magicWordFactory;
$this->contLang = $contLang;
$this->specialPageFactory = $spFactory;
$this->siteConfig = $siteConfig;
$this->linkRendererFactory = $linkRendererFactory;
+ $this->nsInfo = $nsInfo;
}
/**
public function create() : Parser {
return new Parser( $this->parserConf, $this->magicWordFactory, $this->contLang, $this,
$this->urlProtocols, $this->specialPageFactory, $this->siteConfig,
- $this->linkRendererFactory );
+ $this->linkRendererFactory, $this->nsInfo );
}
}