Totem
\\\\////
|.)(.|
| || | Changeset calculator between two state of a data
\(__)/ Requires PHP 5.4 ; Compatible PHP 5.5, PHP 5.6, PHP 7 and HHVM
|-..-|
|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
Installation
You have multiple ways to install Totem. If you are unsure what to do, go with the archive release.
Archive Release
- Download the most recent release from the release page
- Unpack the archive
- Move the files somewhere in your project
Development version
- Install Git
git clone git://github.com/Wisembly/Totem.git
Via Composer
-
Install composer in your project:
curl -s http://getcomposer.org/installer | php
-
Create a
composer.json
file (or update it) in your project root:{ "require": { "wisembly/totem": "^1.4" } }
-
Install via composer :
php composer.phar install
Basic Usage
<?php
use Totem\Snapshot\ArraySnapshot;
$array = ['foo' => '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
- Install phpunit if not already installed
- Run phpunit on the project