1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
<?php
namespace MediaWiki\Content\Transform;
use MediaWiki\Content\Content;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Page\PageReference;
use MediaWiki\Parser\ParserOptions;
use MediaWiki\User\UserIdentity;
/**
* A service to transform content.
*
* @since 1.37
*/
class ContentTransformer {
/** @var IContentHandlerFactory */
private $contentHandlerFactory;
/**
* @param IContentHandlerFactory $contentHandlerFactory
*/
public function __construct( IContentHandlerFactory $contentHandlerFactory ) {
$this->contentHandlerFactory = $contentHandlerFactory;
}
/**
* Returns a Content object with pre-save transformations applied (or $content
* if no transformations apply).
*
* @param Content $content
* @param PageReference $page
* @param UserIdentity $user
* @param ParserOptions $parserOptions
*
* @return Content
*/
public function preSaveTransform(
Content $content,
PageReference $page,
UserIdentity $user,
ParserOptions $parserOptions
): Content {
$contentHandler = $this->contentHandlerFactory->getContentHandler( $content->getModel() );
$pstParams = new PreSaveTransformParamsValue( $page, $user, $parserOptions );
return $contentHandler->preSaveTransform( $content, $pstParams );
}
/**
* Returns a Content object with preload transformations applied (or $content
* if no transformations apply).
*
* @param Content $content
* @param PageReference $page
* @param ParserOptions $parserOptions
* @param array $params
*
* @return Content
*/
public function preloadTransform(
Content $content,
PageReference $page,
ParserOptions $parserOptions,
array $params = []
): Content {
$contentHandler = $this->contentHandlerFactory->getContentHandler( $content->getModel() );
$pltParams = new PreloadTransformParamsValue( $page, $parserOptions, $params );
return $contentHandler->preloadTransform( $content, $pltParams );
}
}
|