MediaWiki REL1_34
SlotDiffRenderer.php
Go to the documentation of this file.
1<?php
23use Wikimedia\Assert\Assert;
24
39abstract class SlotDiffRenderer {
40
49 abstract public function getDiff( Content $oldContent = null, Content $newContent = null );
50
55 public function addModules( OutputPage $output ) {
56 }
57
62 public function getExtraCacheKeys() {
63 return [];
64 }
65
75 protected function normalizeContents(
76 Content &$oldContent = null, Content &$newContent = null, $allowedClasses = null
77 ) {
78 if ( !$oldContent && !$newContent ) {
79 throw new InvalidArgumentException( '$oldContent and $newContent cannot both be null' );
80 }
81
82 if ( $allowedClasses ) {
83 if ( is_array( $allowedClasses ) ) {
84 $allowedClasses = implode( '|', $allowedClasses );
85 }
86 Assert::parameterType( $allowedClasses . '|null', $oldContent, '$oldContent' );
87 Assert::parameterType( $allowedClasses . '|null', $newContent, '$newContent' );
88 }
89
90 if ( !$oldContent ) {
91 $oldContent = $newContent->getContentHandler()->makeEmptyContent();
92 } elseif ( !$newContent ) {
93 $newContent = $oldContent->getContentHandler()->makeEmptyContent();
94 }
95 }
96
97}
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:34