* @file
* @ingroup Parser
*/
-
+use MediaWiki\Linker\LinkRendererFactory;
+use MediaWiki\MediaWikiServices;
use MediaWiki\Special\SpecialPageFactory;
/**
*/
class ParserFactory {
/** @var array */
- private $conf;
+ private $parserConf;
/** @var MagicWordFactory */
private $magicWordFactory;
/** @var SpecialPageFactory */
private $specialPageFactory;
+ /** @var Config */
+ private $siteConfig;
+
+ /** @var LinkRendererFactory */
+ private $linkRendererFactory;
+
+ /** @var NamespaceInfo */
+ private $nsInfo;
+
/**
- * @param array $conf See $wgParserConf documentation
+ * @param array $parserConf See $wgParserConf documentation
* @param MagicWordFactory $magicWordFactory
* @param Language $contLang Content language
* @param string $urlProtocols As returned from wfUrlProtocols()
* @param SpecialPageFactory $spFactory
+ * @param Config $siteConfig
+ * @param LinkRendererFactory $linkRendererFactory
+ * @param NamespaceInfo|null $nsInfo
* @since 1.32
*/
public function __construct(
- array $conf, MagicWordFactory $magicWordFactory, Language $contLang, $urlProtocols,
- SpecialPageFactory $spFactory
+ array $parserConf, MagicWordFactory $magicWordFactory, Language $contLang, $urlProtocols,
+ SpecialPageFactory $spFactory, Config $siteConfig,
+ LinkRendererFactory $linkRendererFactory, NamespaceInfo $nsInfo = null
) {
- $this->conf = $conf;
+ if ( !$nsInfo ) {
+ wfDeprecated( __METHOD__ . ' with no NamespaceInfo argument', '1.34' );
+ $nsInfo = MediaWikiServices::getInstance()->getNamespaceInfo();
+ }
+ $this->parserConf = $parserConf;
$this->magicWordFactory = $magicWordFactory;
$this->contLang = $contLang;
$this->urlProtocols = $urlProtocols;
$this->specialPageFactory = $spFactory;
+ $this->siteConfig = $siteConfig;
+ $this->linkRendererFactory = $linkRendererFactory;
+ $this->nsInfo = $nsInfo;
}
/**
* @since 1.32
*/
public function create() : Parser {
- return new Parser( $this->conf, $this->magicWordFactory, $this->contLang, $this,
- $this->urlProtocols, $this->specialPageFactory );
+ return new Parser( $this->parserConf, $this->magicWordFactory, $this->contLang, $this,
+ $this->urlProtocols, $this->specialPageFactory, $this->siteConfig,
+ $this->linkRendererFactory, $this->nsInfo );
}
}