wiki.techinc.nl/includes/parser/Parsoid/HtmlTransformFactory.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

97 lines
2.7 KiB
PHP

<?php
namespace MediaWiki\Parser\Parsoid;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Languages\LanguageConverterFactory;
use MediaWiki\Languages\LanguageFactory;
use MediaWiki\Page\PageIdentity;
use MediaWiki\Parser\Parsoid\Config\PageConfigFactory;
use MediaWiki\Title\TitleFactory;
use Wikimedia\Parsoid\Config\SiteConfig;
use Wikimedia\Parsoid\Parsoid;
/**
* @since 1.40
* @unstable should be marked stable before 1.40 release
*/
class HtmlTransformFactory {
private Parsoid $parsoid;
private array $parsoidSettings;
private PageConfigFactory $configFactory;
private IContentHandlerFactory $contentHandlerFactory;
private SiteConfig $siteConfig;
private TitleFactory $titleFactory;
private LanguageConverterFactory $languageConverterFactory;
private LanguageFactory $languageFactory;
/**
* @param Parsoid $parsoid
* @param array $parsoidSettings
* @param PageConfigFactory $configFactory
* @param IContentHandlerFactory $contentHandlerFactory
* @param SiteConfig $siteConfig
* @param TitleFactory $titleFactory
* @param LanguageConverterFactory $languageConverterFactory
* @param LanguageFactory $languageFactory
*/
public function __construct(
Parsoid $parsoid,
array $parsoidSettings,
PageConfigFactory $configFactory,
IContentHandlerFactory $contentHandlerFactory,
SiteConfig $siteConfig,
TitleFactory $titleFactory,
LanguageConverterFactory $languageConverterFactory,
LanguageFactory $languageFactory
) {
$this->parsoid = $parsoid;
$this->parsoidSettings = $parsoidSettings;
$this->configFactory = $configFactory;
$this->contentHandlerFactory = $contentHandlerFactory;
$this->siteConfig = $siteConfig;
$this->titleFactory = $titleFactory;
$this->languageConverterFactory = $languageConverterFactory;
$this->languageFactory = $languageFactory;
}
/**
* Get the HTML transform object for a given page and specified
* modified HTML.
*
* @param string $modifiedHTML
* @param PageIdentity $page
*
* @return HtmlToContentTransform
*/
public function getHtmlToContentTransform( string $modifiedHTML, PageIdentity $page ) {
return new HtmlToContentTransform(
$modifiedHTML,
$page,
$this->parsoid,
$this->parsoidSettings,
$this->configFactory,
$this->contentHandlerFactory
);
}
/**
* Get a language variant converter object for a given page
*
* @param PageIdentity $page
*
* @return LanguageVariantConverter
*/
public function getLanguageVariantConverter( PageIdentity $page ): LanguageVariantConverter {
return new LanguageVariantConverter(
$page,
$this->configFactory,
$this->parsoid,
$this->siteConfig,
$this->titleFactory,
$this->languageConverterFactory,
$this->languageFactory
);
}
}