PHPackages                             ocramius/change-set - 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. ocramius/change-set

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

ocramius/change-set
===================

A library to compute, commit and rollback simple changesets, tracking insertions, deletions and updates

69229[9 issues](https://github.com/Ocramius/ChangeSet/issues)[3 PRs](https://github.com/Ocramius/ChangeSet/pulls)PHP

Since May 13Pushed 8y ago13 watchersCompare

[ Source](https://github.com/Ocramius/ChangeSet)[ Packagist](https://packagist.org/packages/ocramius/change-set)[ RSS](/packages/ocramius-change-set/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (4)Used By (0)

ChangeSet Computer
==================

[](#changeset-computer)

[![Build Status](https://camo.githubusercontent.com/fd4f079fb62034938e6972b42e0314ae9b6017018f65a04cfe7755e1da245a16/68747470733a2f2f7472617669732d63692e6f72672f4f6372616d6975732f4368616e67655365742e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/Ocramius/ChangeSet) [![Dependency Status](https://camo.githubusercontent.com/bd82b0716b13eae79f3b326d7f6127a7d5b79f006ee88b4da4a78584484d8270/68747470733a2f2f7777772e76657273696f6e6579652e636f6d2f7061636b6167652f7068702d2d6f6372616d6975732d2d70726f78792d6d616e616765722f62616467652e706e67)](https://www.versioneye.com/package/php--ocramius--change-set) [![Coverage Status](https://camo.githubusercontent.com/08ca7879ec068427030538a7a9a201d6bd145fcabd4f59d3cd26fafa168c659e/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f4f6372616d6975732f4368616e67655365742f62616467652e706e673f6272616e63683d6d6173746572)](https://coveralls.io/r/Ocramius/ChangeSet)

Project aim
-----------

[](#project-aim)

This library aims at providing abstraction for a basic changeset computer.

The idea was born from all the code duplication in the `UnitOfWork` components of the various [doctrine projects](https://github.com/doctrine), which all require complex calculations of changes in sets of objects over time.

With this repository, I aim at creating a simple maximum common denominator between those [`UnitOfWork`](http://martinfowler.com/eaaCatalog/unitOfWork.html) implementations by extracting common API and re-implementing it in a cleaner and hopefully more efficient way.

The project is a **work in progress**, so don't expect it to be usable until version `1.0.0` is tagged.

Contributing
------------

[](#contributing)

Please read the [CONTRIBUTING.md](https://github.com/Ocramius/ChangeSet/blob/master/CONTRIBUTING.md)contents if you wish to help out!

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 93.8% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/fd0445bc21fa116c259b5889377b90cbd8a34d49357321f76a74f6d2c2ae6b0c?d=identicon)[Ocramius](/maintainers/Ocramius)

---

Top Contributors

[![Ocramius](https://avatars.githubusercontent.com/u/154256?v=4)](https://github.com/Ocramius "Ocramius (181 commits)")[![awartoft](https://avatars.githubusercontent.com/u/1127626?v=4)](https://github.com/awartoft "awartoft (4 commits)")[![liuggio](https://avatars.githubusercontent.com/u/530406?v=4)](https://github.com/liuggio "liuggio (3 commits)")[![royopa](https://avatars.githubusercontent.com/u/442991?v=4)](https://github.com/royopa "royopa (2 commits)")[![stof](https://avatars.githubusercontent.com/u/439401?v=4)](https://github.com/stof "stof (2 commits)")[![cordoval](https://avatars.githubusercontent.com/u/328359?v=4)](https://github.com/cordoval "cordoval (1 commits)")

### Embed Badge

![Health badge](/badges/ocramius-change-set/health.svg)

```
[![Health](https://phpackages.com/badges/ocramius-change-set/health.svg)](https://phpackages.com/packages/ocramius-change-set)
```

###  Alternatives

[vaimo/composer-patches

Applies a patch from a local or remote file to any package that is part of a given composer project. Patches can be defined both on project and on package level. Optional support for patch versioning, sequencing, custom patch applier configuration and patch command for testing/troubleshooting added patches.

2994.3M16](/packages/vaimo-composer-patches)

PHPackages © 2026

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