Download the PHP package sweikenb/dirty without Composer
On this page you can find all versions of the php package sweikenb/dirty. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sweikenb/dirty
More information about sweikenb/dirty
Files in sweikenb/dirty
Package dirty
Short Description Library for checking if an object or array has changes (is dirty) since the last check.
License MIT
Informations about the package dirty
sweikenb/dirty
Library for checking if an object or array has changes (is dirty) since the last check.
License: MIT
Installation
If you plan to use this library in a Symfony project, consider checking out the corresponding DirtyBundle instead.
Usage
How does it work?
In order to check if the test-subject has untracked changes, the given object or array will be normalized, flattened and stored using a configurable storage adapter.
The next time the check is executed the current data will be compared to the data of the previous check. Which of the subjects fields will be tracked or ignored can be configured (see below).
Usage:
As the result of the check, you will receive a detailed list of fields that changed and the corresponding previous and current value:
Configuration
In some cases you might have data-structures that contain volatile values (e.g. dynamic timestamps) that will always trigger a false-positiv for the dirty-check:
Ignore fields
If you want to ignore certain fields, you can specify which fields should be ignored during the check. If the configured fields contain complex data (object or array) the affected field and all of it subsequent data will be ignored (the field acts like a wildcard):
Check only certain fields
You can also explicitly allow fields that should be checked, any other fields will be ignored. If the configured fields contain complex data (object or array) the affected field and all of it subsequent data will be checked (the field acts like a wildcard):
Combine check and ignore fields
Please note that the "ignore"-configuration will be applied after the "allow"-configuration, that means you can combine them to enable certain structures and then explicitly remove a single field or subset from it:
Storage Adapters
Storage adapters and their primary use-cases:
- Filesystem Adapter (default)
- local development or stage environments
- single-server setups
- low amounts of data to check
- this adapter is NOT RECOMMENDED to be used with a network storage mount and highly benefits from a fast underlying storage (e.g. SSD)
- files will not be cleaned up automatically, you need to write your own script for that!
- REDIS Adapter (or compatible such as "ValKey")
- Symfony applications via DirtyBundle
- production or stage environments
- multi-server setups
- any data-set size
You can add custom storage adapters if needed by implementing the Sweikenb\Library\Dirty\Api\StorageAdapterInterface
.
Configuration and customization
- TODO
All versions of dirty with dependencies
ext-json Version *
symfony/serializer Version ^6.4 | ^7.0
symfony/property-access Version ^6.4 | ^7.0