Totem
Changeset calculator between two states of a data
Install / Use
/learn @Wisembly/TotemREADME
Totem
\\\\////
|.)(.|
| || | 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.jsonfile (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
Related Skills
node-connect
337.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.3kCommit, push, and open a PR






