wiki.techinc.nl/includes/parser/Parsoid/ParsoidParserFactory.php
Subramanya Sastry 17b0ebd3ac includes/parser/Parsoid/*: Use typed class properties
* 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
2023-10-23 17:37:14 -05:00

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
);
}
}