MediaWiki REL1_39
SlotDiffRenderer.php
Go to the documentation of this file.
1<?php
23use Wikimedia\Assert\Assert;
24
40abstract class SlotDiffRenderer {
41
50 abstract public function getDiff( Content $oldContent = null, Content $newContent = null );
51
57 public function addModules( OutputPage $output ) {
58 }
59
65 public function getExtraCacheKeys() {
66 return [];
67 }
68
78 protected function normalizeContents(
79 Content &$oldContent = null, Content &$newContent = null, $allowedClasses = null
80 ) {
81 if ( !$oldContent && !$newContent ) {
82 throw new InvalidArgumentException( '$oldContent and $newContent cannot both be null' );
83 }
84
85 if ( $allowedClasses ) {
86 if ( !is_array( $allowedClasses ) ) {
87 $allowedClasses = explode( '|', $allowedClasses );
88 }
89 $allowedClasses[] = 'null';
90 Assert::parameterType( $allowedClasses, $oldContent, '$oldContent' );
91 Assert::parameterType( $allowedClasses, $newContent, '$newContent' );
92 }
93
94 if ( !$oldContent ) {
95 $oldContent = $newContent->getContentHandler()->makeEmptyContent();
96 } elseif ( !$newContent ) {
97 $newContent = $oldContent->getContentHandler()->makeEmptyContent();
98 }
99 }
100
101}
This is one of the Core classes and should be read at least once by any new developers.
Renders a diff for a single slot (that is, a diff between two content objects).
addModules(OutputPage $output)
Add modules needed for correct styling/behavior of the diff.
getExtraCacheKeys()
Return any extra keys to split the diff cache by.
getDiff(Content $oldContent=null, Content $newContent=null)
Get a diff between two content objects.
normalizeContents(Content &$oldContent=null, Content &$newContent=null, $allowedClasses=null)
Helper method to normalize the input of getDiff().
Base interface for content objects.
Definition Content.php:35