https://github.com/Wisembly/Totem
Changeset calculator between two states of a data
https://github.com/Wisembly/Totem
changes changeset php
Last synced: about 1 month ago
JSON representation
Changeset calculator between two states of a data
- Host: GitHub
- URL: https://github.com/Wisembly/Totem
- Owner: Wisembly
- License: mit
- Created: 2013-11-01T20:57:44.000Z (about 12 years ago)
- Default Branch: 1.x
- Last Pushed: 2023-04-25T15:55:24.000Z (over 2 years ago)
- Last Synced: 2025-08-20T12:51:53.854Z (4 months ago)
- Topics: changes, changeset, php
- Language: PHP
- Homepage: http://wisembly.github.io/Totem
- Size: 145 KB
- Stars: 77
- Watchers: 11
- Forks: 6
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-php-cn - 官网
- awesome-php - Totem - 一个管理和创建数据修改集的库 (数据结构和存储( Data Structure and Storage ))
README
Totem
=====
[](https://packagist.org/packages/wisembly/totem)
[](https://travis-ci.org/Wisembly/Totem)
[](https://packagist.org/packages/wisembly/totem)
[](https://packagist.org/packages/wisembly/totem)
[](https://scrutinizer-ci.com/g/Taluu/Totem/)
[](https://coveralls.io/r/Wisembly/Totem?branch=master)
[](https://insight.sensiolabs.com/projects/82271056-a3c2-4e0b-adff-8219fa198035)
```
\\\\////
|.)(.|
| || | Changeset calculator between two state of a data
\(__)/ Compatibile with PHP 7.3, 7.4 or 8.0
|-..-|
|o\/o|
.----\ /----.
/ / / |~~~~| \ \ \
/ / / /|::::|\ \ \ \
'-'-'-'-|::::|-'-'-'-'
(((^^)))
>>><<< Snapshots currently natively supported :
|||||| - Array
(o)(o) - Object
| /\ | - Collection
(====)
_(_,__)
(___\___)
```
Documentation
=============
For any pieces of document, please look for the docs/ directory. You may also
check up [the compiled version](http://totem.readthedocs.org/en/latest/index.html)
Installation
============
You have multiple ways to install Totem. If you are unsure what to do, go with
[the archive release](#archive-release).
### Archive Release
1. Download the most recent release from the [release page](https://github.com/Wisembly/Totem/releases)
2. Unpack the archive
3. Move the files somewhere in your project
### Development version
1. Install Git
2. `git clone git://github.com/Wisembly/Totem.git`
### Via Composer
1. Install composer in your project: `curl -s http://getcomposer.org/installer | php`
2. Create a `composer.json` file (or update it) in your project root:
```javascript
{
"require": {
"wisembly/totem": "^1.4"
}
}
```
3. Install via composer : `php composer.phar install`
Basic Usage
===========
```php
'bar', 'baz' => 'qux'];
$snapshot = new ArraySnapshot($array); // Totem\Snapshot\ArraySnapshot
$array['foo'] = 'fubar';
$set = $snapshot->diff(new ArraySnapshot($array)); // Totem\Set
var_dump($set->hasChanged('foo'),
$set->getChange('foo')->getOld(),
$set->getChange('foo')->getNew(),
$set->hasChanged('bar'));
/*
* expected result :
*
* bool(true)
* string(3) "bar"
* string(5) "fubar"
* bool(false)
*/
```
Running Tests
=============
1. Install phpunit if not already installed
2. Run phpunit on the project