Original fine diff library:
- https://github.com/webtown-php/fine-diff-bundle
- https://github.com/gorhill/PHP-FineDiff
- http://www.raymondhill.net/finediff/viewdiff-ex.php
Run in command line:
$ composer require greywolfs/fine-diff-bundle
Or add with hand to composer.json:
"require": {
"greywolfs/fine-diff-bundle": "~1.10"
}
Add the app
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Greywolfs\FineDiffBundle\GreywolfsPHPFineDiffBundle(),
);
}
Optional. You can change the default granularity.
# app/config/config.yml
greywolfs_fine_diff:
default_granularity: character # This is the default granularity. Alternatives: 'word', 'sentence' and 'paragraph'
There are two twig function:
renderDiff()
: compare two stringsrenderHtmlTextDiff()
: compare two strings which contain HTML tags. Remove tags withstrip_tags
before compare strings
{{ renderDiff(oldValue, newValue) }}
{{ renderDiff(oldValue, newValue, 'word') }}
{{ renderHtmlTextDiff(oldValue, newValue) }}
{{ renderHtmlTextDiff(oldValue, newValue, 'sentence') }}