d4h / finediff
PHP implementation of a Fine granularity Diff engine
Installs: 671 166
Dependents: 2
Suggesters: 0
Security: 0
Stars: 12
Watchers: 4
Forks: 8
Open Issues: 4
Requires
- php: ~8.1
Requires (Dev)
- mockery/mockery: ^1.3
- phpunit/phpunit: ^8.5 || ^9.2
README
Originally written by Raymond Hill (https://github.com/gorhill/PHP-FineDiff)
Installation
composer require d4h/finediff
Usage
Render HTML
Render the difference between two strings as HTML:
$diff = new FineDiff\Diff(); echo $diff->render('string one', 'string two');
This would then output:
string <ins>tw</ins>o<del>ne</del>
You could change the granularity to CogPowered\FineDiff\Granularity\Word
$diff = new FineDiff\Diff(new FineDiff\Granularity\Word()); // Or via the setter method: $diff->setGranularity(new FineDiff\Granularity\Word());
so the output is:
string <del>one</del><ins>two</ins>
You do this by passing it into the Diff constructor:
Grab opcode instructions
Opcode instructions are what tell FineDiff how to change one string into another.
$diff = new FineDiff\Diff(); echo $diff->getOpcodes('string one', 'string two');
This would then output:
c7d3i3:two
Render text using the opcodes:
$renderer = new FineDiff\Render\Text(); echo $renderer->process('string one', 'c7d3i3:two');
Would output:
string two
Same with HTML:
$renderer = new FineDiff\Render\Html(); echo $renderer->process('string one', 'c7d3i3:two');
Credits
Sponsored by D4H.