sokil/php-diff

0.4 2019-07-04 19:49 UTC

This package is auto-updated.

Last update: 2024-09-05 07:02:49 UTC


README

突出显示由Sebastian Bergmann diff提供的差异

Build Status Coverage Status Total Downloads

安装

composer.phar require sokil/php-diff

用法

<?php

use Sokil\Diff\Change;
use Sokil\Diff\Renderer;

$diffRenderer = new Renderer();
$actualDiff = $diffRenderer->render(new Change(
    implode(PHP_EOL, ['line1', 'line2', 'line3']),
    implode(PHP_EOL, ['line1', 'line2changed', 'line3'])
));

差异输出格式

差异标签的格式可以配置。默认情况下仅渲染两个标签: <ins><del>。要突出显示输出,请使用预定义的格式

<?php
$renderer = new Renderer([
    'format' => Renderer::FORMAT_COLOUR
]);

这将生成以下HTML

line1
<del style="background: #ffe7e7;">line2</del>
<ins style="background: #ddfade;">line2changed</ins>
line3

要完全自定义样式,请使用以下语法(此格式具有别名 Renderer::FORMAT_COLOUR

<?php
$renderer = new Renderer([
    'format' => [
        'insert' => [
            'tag' => 'ins',
            'attributes' => 'style="background: #ddfade;"',
        ],
        'delete' => [
            'tag' => 'del',
            'attributes' => 'style="background: #ffe7e7;"',
        ]
    ]
]);

// this is same to
$renderer = new Renderer([
    'format' => Renderer::FORMAT_COLOUR
]);

默认格式 Renderer::FORMAT_DEFAULT 的表示如下

<?php
$renderer = new Renderer([
    'insert' => [
        'tag' => 'ins',
    ],
    'delete' => [
        'tag' => 'del',
    ]
]);

// this is same to
$renderer = new Renderer([
    'format' => Renderer::FORMAT_DEFAULT
]);