Snapshots management module. Can store snapshot in database or in files, allows to view and easily manipulate them via vault panel.
composer require spiral/snapshotter
spiral register spiral/snapshotter
'snapshots' => [
'title' => 'Snapshots',
'requires' => 'vault.snapshots'
],
$this->getBootloader()->bootload([
\Spiral\Snapshotter\Bootloaders\SnapshotterBootloader::class
]);
Currently there are two supported handlers: FileHandler
and AggregationHandler
, choose onf of them and bind it:
$this->getBootloader()->bootload([
\Spiral\Snapshotter\Bootloaders\FileHandlerBootloader::class
]);
//OR:
$this->getBootloader()->bootload([
\Spiral\Snapshotter\Bootloaders\AggregationHandlerBootloader::class
]);
Then you can remove standard SnapshotInterface
binding (if included):
//$this->container->bind(SnapshotInterface::class, Snapshotter\Debug\AggregatedSnapshot::class);
File handler stores snapshot files in runtime directory.
Aggregation handler stores snapshots in database. Exception body is gzencoded
Aggregation handler aggregates similar snapshot incidents groping them by snapshot teaser message, it allows you to easily manage snapshots if some of them occurred more than once. Aggregation handler supports suppression feature: it allows you to save space because new snapshot incidents will be stored with empty exception source. You will see all incidents, no reason to store all sources if you can find it in the last incident. If you want to store sources - just disable suppression.
After suppression is enabled, only new incidents will be involved, old ones will be kept untouched. Same for disabled suppression.
Aggregation handler uses database, by default it is set as an alias to the default
database
#TODO-list
- Add charts/widgets
- Add listing dependency