PHPackages                             eq/diff - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. eq/diff

ActiveProject[Utility &amp; Helpers](/categories/utility)

eq/diff
=======

Utility for finding differences in configuration files

1.0.0(8y ago)022MITPHP

Since Oct 9Pushed 8y ago1 watchersCompare

[ Source](https://github.com/orion122/diff-finder)[ Packagist](https://packagist.org/packages/eq/diff)[ RSS](/packages/eq-diff/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (5)Versions (2)Used By (0)

Diff Finder
===========

[](#diff-finder)

[![Build Status](https://camo.githubusercontent.com/47f8f32b855693113776af88883ab1eb5d6682d2855cedf43fc1349d233ce3d0/68747470733a2f2f7472617669732d63692e6f72672f6f72696f6e3132322f646966662d66696e6465722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/orion122/diff-finder)[![Maintainability](https://camo.githubusercontent.com/a00b4bd18a93b0e989479319df44827096b6bf8d07e0330a19bdf20c24f43d66/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f33623764356265613331333565333939363630372f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/orion122/diff-finder/maintainability)[![Test Coverage](https://camo.githubusercontent.com/8f7060a3be0a8d6f379fbff5cd268a5df69230e43260b812d5473d155d2b33e1/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f33623764356265613331333565333939363630372f746573745f636f766572616765)](https://codeclimate.com/github/orion122/diff-finder/test_coverage)

Description
-----------

[](#description)

Utility for finding differences in configuration files.

Supported JSON and YAML files.

Installation
------------

[](#installation)

`$ composer require eq/diff`

Usage
-----

[](#usage)

```
$ ~/vendor/bin/gendiff -h
Generate diff

Usage:
  gendiff (-h|--help)
  gendiff [--format ]

Options:
  -h --help                     Show this screen
  --format                 Report format [default: pretty]

```

Pretty output:

```
$ ~/vendor/bin/gendiff first.json second.json
   {
       "common": {
           "setting1": "Value 1"
         - "setting2": "200"
           "setting3": true
         - "setting6": {
               "key": "value"
           }
         + "setting4": "blah blah"
         + "setting5": {
               "key5": "value5"
           }
       }
       "group1": {
         - "baz": "bas"
         + "baz": "bars"
           "foo": "bar"
       }
     - "group2": {
           "abc": "12345"
       }
     + "group3": {
           "fee": "100500"
       }
   }

```

Plain output:

```
$ ~/vendor/bin/gendiff --format plain first.json second.json
Property 'common.setting2' was removed
Property 'common.setting6' was removed
Property 'common.setting4' was added with value: 'blah blah'
Property 'common.setting5' was added with value: 'complex value'
Property 'group1.baz' was changed. From 'bas' to 'bars'
Property 'group2' was removed
Property 'group3' was added with value: 'complex value'

```

JSON output:

```
$ ~/vendor/bin/gendiff --format json first.json second.json
[{"key":"common","type":"nested","children":[{"key":"setting1","type":"unchanged","from":"Value 1","to":null},{"key":"setting2","type":"removed","from":"200","to":null},{"key":"setting3","type":"unchanged","from":true,"to":null},{"key":"setting6","type":"removed","from":{"key":"value"},"to":null},{"key":"setting4","type":"added","from":"blah blah","to":null},{"key":"setting5","type":"added","from":{"key5":"value5"},"to":null}]},{"key":"group1","type":"nested","children":[{"key":"baz","type":"changed","from":"bas","to":"bars"},{"key":"foo","type":"unchanged","from":"bar","to":null}]},{"key":"group2","type":"removed","from":{"abc":"12345"},"to":null},{"key":"group3","type":"added","from":{"fee":"100500"},"to":null}]

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3134d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6d6dd7d7b7f9be6ace3c3ce52aa8beccf4d87e591b8d0cdf83ac29b189b9fc66?d=identicon)[eq](/maintainers/eq)

---

Top Contributors

[![orion122](https://avatars.githubusercontent.com/u/3809844?v=4)](https://github.com/orion122 "orion122 (30 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/eq-diff/health.svg)

```
[![Health](https://phpackages.com/badges/eq-diff/health.svg)](https://phpackages.com/packages/eq-diff)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
