Open gugglegum opened 6 years ago
@gugglegum PRs are welcomed 👍 and yes I work on it as needed.
@gugglegum JBlond/php-diff has now namespaces
I have my changes. https://github.com/jfcherng/php-diff
major.minor.patch
)PSR-1
, PSR-4
, PSR-12
.6.10.x
releases and PHP >= 7.4 for the latest release)Combined
, JsonText
and JsonHtml
renderers.none-level
, char-level
and word-level
detailed diff for HTML renderers.DiffHelper
and RendererFactory
for simpler usage.@JBlond I see you still develop php-diff recently. Maybe you would be interested in my repo above too.
sebastian/diff doesn't seem to have colorized html output, and it shows the differences only as lines. It may be ok for code, but not for highlighting the differences in blocks of text, for example revisions of a blog post (if only a word in a sentence is changed, I want to see only that word highlighted). Anybody knows a better library to have something similar to diffchecker.com ?
Edit: jfcherng/php-diff works very well, thanks :)
@fmonts check out JBlond/php-diff ,too
This package (chrisboulton/php-diff) is abandoned and not supported for several years. There's 167 other packages that forked from this root repo, but they are ugly. Most of them doesn't contain any changes. Many other contain questionable changes. A small number of forks contains 1-2 fixes or addition of some functionality necessary to authors. But all these forks are very low quality. Most of forks (as of original repo) doesn't use namespaces which makes difficulties if you want to use Composer's autoloader. There is a few repos that adds namespaces, but they seems to be abandoned too. They mostly are missing "Issues" section, so nobody can report a bug. Code quality is not good enough (at least for me). No unit-tests, no docs, no UTF-8 support. And all forks are crashes with
count(): Parameter must be an array or an object that implements Countable
when you making a diff for two arrays where one of them is empty. The error is inlib/Diff/SequenceMatcher.php
insetSeq1()
andsetSeq2()
(need replaceif($a == $this->a) {
toif($a === $this->a) {
). This is very simple bug, but nobody found it and fixed.I've tried these packages:
Then I found a better alternative of all this misunderstanding -- it's sebastian/diff (https://github.com/sebastianbergmann/diff). It works little different, but it has much better code quality, actively maintaining, supported and the author is an authority in PHP world (he maintain PHPUnit). Actually previously it was a part of PHPUnit but then was factored out. So I recommend to use his package instead and forget about chrisboulton/php-diff and all its forks.