wisembly / totem
Changeset calculator between data states
Installs: 33 654
Dependents: 0
Suggesters: 0
Security: 0
Stars: 76
Watchers: 12
Forks: 6
Open Issues: 5
Requires
- php: ^7.1 || ^7.3 || ^8.0
- symfony/property-access: ^2.5 || ^3.0 || ^4.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
\\\\////
|.)(.|
| || | 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
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