* I had already used this on one property of one file here and noticed that Isabelle used this on a newly created class in output transform and that prompted me to switch over all these files. * I am about to start adding new files here for new hooks for DiscussionTools and updated everything in this namesspace to keep usage consistent. * This exposed initialization and bad typing issues in SiteConfig.php and LanguageVariantConverter.php Change-Id: I35f131a8f584ccc82a915dbfb1b50b3ef1ec6b06
72 lines
2.1 KiB
PHP
72 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Parser\Parsoid;
|
|
|
|
use MediaWiki\Languages\LanguageConverterFactory;
|
|
use MediaWiki\Parser\Parsoid\Config\PageConfigFactory;
|
|
use ParserFactory;
|
|
use Wikimedia\Parsoid\Config\DataAccess;
|
|
use Wikimedia\Parsoid\Config\SiteConfig;
|
|
use Wikimedia\Parsoid\Parsoid;
|
|
use Wikimedia\UUID\GlobalIdGenerator;
|
|
|
|
/**
|
|
* ParserFactory which uses a ParsoidParser.
|
|
*
|
|
* This is similar to \ParserFactory, but simplified since we don't need
|
|
* to try to reuse parser objects. Eventually we'll be able to simplify
|
|
* \ParserFactory the same way.
|
|
*
|
|
* @since 1.41
|
|
* @internal May be combined with \ParserFactory or otherwise refactored
|
|
*
|
|
* @file
|
|
* @ingroup Parser
|
|
*/
|
|
class ParsoidParserFactory /* eventually this may extend \ParserFactory */ {
|
|
private SiteConfig $siteConfig;
|
|
private DataAccess $dataAccess;
|
|
private PageConfigFactory $pageConfigFactory;
|
|
private LanguageConverterFactory $languageConverterFactory;
|
|
private ParserFactory $legacyParserFactory;
|
|
private GlobalIdGenerator $globalIdGenerator;
|
|
|
|
/**
|
|
* @param SiteConfig $siteConfig
|
|
* @param DataAccess $dataAccess
|
|
* @param PageConfigFactory $pageConfigFactory
|
|
* @param LanguageConverterFactory $languageConverterFactory
|
|
* @param ParserFactory $legacyParserFactory
|
|
*/
|
|
public function __construct(
|
|
SiteConfig $siteConfig,
|
|
DataAccess $dataAccess,
|
|
PageConfigFactory $pageConfigFactory,
|
|
LanguageConverterFactory $languageConverterFactory,
|
|
ParserFactory $legacyParserFactory,
|
|
GlobalIdGenerator $globalIdGenerator
|
|
) {
|
|
$this->siteConfig = $siteConfig;
|
|
$this->dataAccess = $dataAccess;
|
|
$this->pageConfigFactory = $pageConfigFactory;
|
|
$this->languageConverterFactory = $languageConverterFactory;
|
|
$this->legacyParserFactory = $legacyParserFactory;
|
|
$this->globalIdGenerator = $globalIdGenerator;
|
|
}
|
|
|
|
/**
|
|
* Creates a new Parsoid parser.
|
|
* @return ParsoidParser
|
|
* @since 1.41
|
|
* @unstable
|
|
*/
|
|
public function create(): ParsoidParser {
|
|
return new ParsoidParser(
|
|
new Parsoid( $this->siteConfig, $this->dataAccess ),
|
|
$this->pageConfigFactory,
|
|
$this->languageConverterFactory,
|
|
$this->legacyParserFactory,
|
|
$this->globalIdGenerator
|
|
);
|
|
}
|
|
}
|