MediaWiki REL1_35
TextSlotDiffRenderer Class Reference

Renders a slot diff by doing a text diff on the native representation. More...

Inheritance diagram for TextSlotDiffRenderer:
Collaboration diagram for TextSlotDiffRenderer:

Public Member Functions

 getDiff (Content $oldContent=null, Content $newContent=null)
 Get a diff between two content objects.One of them might be null (meaning a slot was created or removed), but both cannot be. $newContent (or if it's null then $oldContent) must have the same content model that was used to obtain this diff renderer.

Parameters
Content | null$oldContent
Content | null$newContent
Returns
string HTML, one or more

 
 getExtraCacheKeys ()
 Return any extra keys to split the diff cache by.Stable to override

Returns
array

 
 getTextDiff ( $oldText, $newText)
 Diff the text representations of two content objects (or just two pieces of text in general).
 
 setEngine ( $type, $executable=null)
 Set which diff engine to use.
 
 setLanguage (Language $language)
 
 setStatsdDataFactory (IBufferingStatsdDataFactory $statsdDataFactory)
 
- Public Member Functions inherited from SlotDiffRenderer
 addModules (OutputPage $output)
 Add modules needed for correct styling/behavior of the diff.
 

Static Public Member Functions

static diff ( $oldText, $newText)
 Convenience helper to use getTextDiff without an instance.
 

Public Attributes

const ENGINE_EXTERNAL = 'external'
 Use an external executable.
 
const ENGINE_PHP = 'php'
 Use the PHP diff implementation (DiffEngine).
 
const ENGINE_WIKIDIFF2 = 'wikidiff2'
 Use the wikidiff2 PHP module.
 
const ENGINE_WIKIDIFF2_INLINE = 'wikidiff2inline'
 Use the wikidiff2 PHP module.
 

Protected Member Functions

 getTextDiffInternal ( $oldText, $newText)
 Diff the text representations of two content objects (or just two pieces of text in general).
 
- Protected Member Functions inherited from SlotDiffRenderer
 normalizeContents (Content &$oldContent=null, Content &$newContent=null, $allowedClasses=null)
 Helper method to normalize the input of getDiff().
 

Private Attributes

string $engine = self::ENGINE_PHP
 One of the ENGINE_* constants.
 
string $externalEngine
 Path to an executable to be used as the diff engine.
 
Language null $language
 The language this content is in.
 
IBufferingStatsdDataFactory null $statsdDataFactory
 

Detailed Description

Renders a slot diff by doing a text diff on the native representation.

If you want to use this without content objects (to call getTextDiff() on some non-content-related texts), obtain an instance with ContentHandler::getForModelID( CONTENT_MODEL_TEXT ) ->getSlotDiffRenderer( RequestContext::getMain() )

Definition at line 38 of file TextSlotDiffRenderer.php.

Member Function Documentation

◆ diff()

static TextSlotDiffRenderer::diff (   $oldText,
  $newText 
)
static

Convenience helper to use getTextDiff without an instance.

Parameters
string$oldText
string$newText
Returns
string

Definition at line 81 of file TextSlotDiffRenderer.php.

References CONTENT_MODEL_TEXT.

◆ getDiff()

TextSlotDiffRenderer::getDiff ( Content  $oldContent = null,
Content  $newContent = null 
)

Get a diff between two content objects.One of them might be null (meaning a slot was created or removed), but both cannot be. $newContent (or if it's null then $oldContent) must have the same content model that was used to obtain this diff renderer.

Parameters
Content | null$oldContent
Content | null$newContent
Returns
string HTML, one or more

Reimplemented from SlotDiffRenderer.

Definition at line 121 of file TextSlotDiffRenderer.php.

References getTextDiff(), and SlotDiffRenderer\normalizeContents().

◆ getExtraCacheKeys()

TextSlotDiffRenderer::getExtraCacheKeys ( )

Return any extra keys to split the diff cache by.Stable to override

Returns
array

Returns
array

Reimplemented from SlotDiffRenderer.

Definition at line 68 of file TextSlotDiffRenderer.php.

◆ getTextDiff()

TextSlotDiffRenderer::getTextDiff (   $oldText,
  $newText 
)

Diff the text representations of two content objects (or just two pieces of text in general).

Parameters
string$oldText
string$newText
Returns
string HTML, one or more

tags.

Definition at line 136 of file TextSlotDiffRenderer.php.

References getTextDiffInternal().

Referenced by getDiff().

◆ getTextDiffInternal()

TextSlotDiffRenderer::getTextDiffInternal (   $oldText,
  $newText 
)
protected

Diff the text representations of two content objects (or just two pieces of text in general).

This does the actual diffing, getTextDiff() wraps it with logging and resource limiting.

Parameters
string$oldText
string$newText
Returns
string
Exceptions
Exception

Definition at line 190 of file TextSlotDiffRenderer.php.

References $externalEngine, wfEscapeWikiText(), and wfTempDir().

Referenced by getTextDiff().

◆ setEngine()

TextSlotDiffRenderer::setEngine (   $type,
  $executable = null 
)

Set which diff engine to use.

Parameters
string$typeOne of the ENGINE_* constants.
string | null$executablePath to an external exectable, only when type is ENGINE_EXTERNAL.

Definition at line 104 of file TextSlotDiffRenderer.php.

References $type, ENGINE_EXTERNAL, ENGINE_PHP, ENGINE_WIKIDIFF2, and ENGINE_WIKIDIFF2_INLINE.

◆ setLanguage()

TextSlotDiffRenderer::setLanguage ( Language  $language)

Definition at line 95 of file TextSlotDiffRenderer.php.

References $language.

◆ setStatsdDataFactory()

TextSlotDiffRenderer::setStatsdDataFactory ( IBufferingStatsdDataFactory  $statsdDataFactory)

Definition at line 91 of file TextSlotDiffRenderer.php.

References $statsdDataFactory.

Member Data Documentation

◆ $engine

string TextSlotDiffRenderer::$engine = self::ENGINE_PHP
private

One of the ENGINE_* constants.

Definition at line 59 of file TextSlotDiffRenderer.php.

◆ $externalEngine

string TextSlotDiffRenderer::$externalEngine
private

Path to an executable to be used as the diff engine.

Definition at line 62 of file TextSlotDiffRenderer.php.

Referenced by getTextDiffInternal().

◆ $language

Language null TextSlotDiffRenderer::$language
private

The language this content is in.

Definition at line 56 of file TextSlotDiffRenderer.php.

Referenced by setLanguage().

◆ $statsdDataFactory

IBufferingStatsdDataFactory null TextSlotDiffRenderer::$statsdDataFactory
private

Definition at line 53 of file TextSlotDiffRenderer.php.

Referenced by setStatsdDataFactory().

◆ ENGINE_EXTERNAL

const TextSlotDiffRenderer::ENGINE_EXTERNAL = 'external'

Use an external executable.

Definition at line 50 of file TextSlotDiffRenderer.php.

Referenced by ContentHandler\getSlotDiffRendererWithOptions(), and setEngine().

◆ ENGINE_PHP

const TextSlotDiffRenderer::ENGINE_PHP = 'php'

Use the PHP diff implementation (DiffEngine).

Definition at line 41 of file TextSlotDiffRenderer.php.

Referenced by ContentHandler\getSlotDiffRendererWithOptions(), and setEngine().

◆ ENGINE_WIKIDIFF2

const TextSlotDiffRenderer::ENGINE_WIKIDIFF2 = 'wikidiff2'

Use the wikidiff2 PHP module.

Definition at line 44 of file TextSlotDiffRenderer.php.

Referenced by ContentHandler\getSlotDiffRendererWithOptions(), and setEngine().

◆ ENGINE_WIKIDIFF2_INLINE

const TextSlotDiffRenderer::ENGINE_WIKIDIFF2_INLINE = 'wikidiff2inline'

Use the wikidiff2 PHP module.

Definition at line 47 of file TextSlotDiffRenderer.php.

Referenced by ContentHandler\getSlotDiffRendererWithOptions(), and setEngine().


The documentation for this class was generated from the following file: