wiki.techinc.nl/includes/Rest/Handler/Helper/PageRestHelperFactory.php
Derick Alangi 1afd52e3e4 REST: Move Helper classes to their own namespace
Mixing Handlers with Helpers doesn't look nice for consistency
reasons. Helpers should be in their own place (grouped) in the
Handlers directory as they're really "helpers for the handlers".

Change-Id: Ieeb7a0a706a4cb38778f312bfbfe781a1f366d14
2023-01-16 21:16:09 +01:00

119 lines
3.7 KiB
PHP

<?php
namespace MediaWiki\Rest\Handler\Helper;
use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Edit\ParsoidOutputStash;
use MediaWiki\Languages\LanguageFactory;
use MediaWiki\Page\PageLookup;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Parser\Parsoid\ParsoidOutputAccess;
use MediaWiki\Revision\RevisionLookup;
use TitleFormatter;
/**
* @since 1.40 Factory for helper objects designed for sharing logic between REST handlers that deal with page content.
*/
class PageRestHelperFactory {
/**
* @internal
*/
public const CONSTRUCTOR_OPTIONS = PageContentHelper::CONSTRUCTOR_OPTIONS;
private ServiceOptions $options;
private RevisionLookup $revisionLookup;
private TitleFormatter $titleFormatter;
private PageLookup $pageLookup;
private ParsoidOutputStash $parsoidOutputStash;
private StatsdDataFactoryInterface $stats;
private ParsoidOutputAccess $parsoidOutputAccess;
private HtmlTransformFactory $htmlTransformFactory;
private IContentHandlerFactory $contentHandlerFactory;
private LanguageFactory $languageFactory;
/**
* @param ServiceOptions $options
* @param RevisionLookup $revisionLookup
* @param TitleFormatter $titleFormatter
* @param PageLookup $pageLookup
* @param ParsoidOutputStash $parsoidOutputStash
* @param StatsdDataFactoryInterface $statsDataFactory
* @param ParsoidOutputAccess $parsoidOutputAccess
* @param HtmlTransformFactory $htmlTransformFactory
* @param IContentHandlerFactory $contentHandlerFactory
* @param LanguageFactory $languageFactory
*/
public function __construct(
ServiceOptions $options,
RevisionLookup $revisionLookup,
TitleFormatter $titleFormatter,
PageLookup $pageLookup,
ParsoidOutputStash $parsoidOutputStash,
StatsdDataFactoryInterface $statsDataFactory,
ParsoidOutputAccess $parsoidOutputAccess,
HtmlTransformFactory $htmlTransformFactory,
IContentHandlerFactory $contentHandlerFactory,
LanguageFactory $languageFactory
) {
$this->options = $options;
$this->revisionLookup = $revisionLookup;
$this->titleFormatter = $titleFormatter;
$this->pageLookup = $pageLookup;
$this->parsoidOutputStash = $parsoidOutputStash;
$this->stats = $statsDataFactory;
$this->parsoidOutputAccess = $parsoidOutputAccess;
$this->htmlTransformFactory = $htmlTransformFactory;
$this->contentHandlerFactory = $contentHandlerFactory;
$this->languageFactory = $languageFactory;
}
public function newRevisionContentHelper(): RevisionContentHelper {
return new RevisionContentHelper(
$this->options,
$this->revisionLookup,
$this->titleFormatter,
$this->pageLookup
);
}
public function newPageContentHelper(): PageContentHelper {
return new PageContentHelper(
$this->options,
$this->revisionLookup,
$this->titleFormatter,
$this->pageLookup
);
}
public function newHtmlOutputRendererHelper(): HtmlOutputRendererHelper {
return new HtmlOutputRendererHelper(
$this->parsoidOutputStash,
$this->stats,
$this->parsoidOutputAccess,
$this->htmlTransformFactory,
$this->contentHandlerFactory,
$this->languageFactory
);
}
public function newHtmlMessageOutputHelper(): HtmlMessageOutputHelper {
return new HtmlMessageOutputHelper();
}
public function newHtmlInputTransformHelper( $envOptions = [] ): HtmlInputTransformHelper {
return new HtmlInputTransformHelper(
$this->stats,
$this->htmlTransformFactory,
$this->parsoidOutputStash,
$this->parsoidOutputAccess,
$envOptions
);
}
}
/** @deprecated since 1.40, remove in 1.41 */
class_alias( PageRestHelperFactory::class, "MediaWiki\\Rest\\Handler\\PageRestHelperFactory" );