Page MenuHomeWickedGov Phorge

ArrayDiffFormatter.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

ArrayDiffFormatter.php

<?php
/**
* Portions taken from phpwiki-1.3.3.
*
* Copyright © 2000, 2001 Geoffrey T. Dairiki <dairiki@dairiki.org>
* You may copy this code freely under the conditions of the GPL.
*
* @license GPL-2.0-or-later
* @file
* @ingroup DifferenceEngine
*/
namespace Wikimedia\Diff;
/**
* A pseudo-formatter that just passes along the Diff::$edits array
* @newable
* @ingroup DifferenceEngine
*/
class ArrayDiffFormatter extends DiffFormatter {
/**
* @param Diff $diff A Diff object.
*
* @return array[] List of associative arrays, each describing a difference.
* @suppress PhanParamSignatureMismatch
*/
public function format( $diff ) {
$oldline = 1;
$newline = 1;
$retval = [];
foreach ( $diff->getEdits() as $edit ) {
switch ( $edit->getType() ) {
case 'add':
foreach ( $edit->getClosing() as $line ) {
$retval[] = [
'action' => 'add',
'new' => $line,
'newline' => $newline++
];
}
break;
case 'delete':
foreach ( $edit->getOrig() as $line ) {
$retval[] = [
'action' => 'delete',
'old' => $line,
'oldline' => $oldline++,
];
}
break;
case 'change':
foreach ( $edit->getOrig() as $key => $line ) {
$retval[] = [
'action' => 'change',
'old' => $line,
'new' => $edit->getClosing( $key ),
'oldline' => $oldline++,
'newline' => $newline++,
];
}
break;
case 'copy':
$oldline += $edit->norig();
$newline += $edit->norig();
}
}
return $retval;
}
}
/** @deprecated class alias since 1.41 */
class_alias( ArrayDiffFormatter::class, 'ArrayDiffFormatter' );

File Metadata

Mime Type
text/x-php
Expires
Aug 14 2026, 23:35 (12 w, 6 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
0b/0b/5f3c1385cdfdd369090c3206e85e
Default Alt Text
ArrayDiffFormatter.php (1 KB)

Event Timeline