Symfony Bundle for lamoda/cleaner library.
- Install the Bundle with composer:
$ composer require lamoda/cleaner-bundle
- Enable the Bundle:
<?php
// config/bundles.php
return [
// ...
Lamoda\CleanerBundle\LamodaCleanerBundle::class => ['all' => true],
// ...
];
- Configure cleaners for your project:
lamoda_cleaner:
db:
queue:
transactional: false # optional, default true
query: DELETE FROM queue WHERE created_at < NOW() - (:interval || ' days')::interval
parameters:
interval: 30
types: # optional, if required special type handling
- integer
# you can use multiple queries at one command
multi_tables:
class: Lamoda\Cleaner\DB\DoctrineDBALCleaner
transactional: true
queries:
- query: DELETE FROM table_a WHERE created_at < NOW() - (:interval || ' days')::interval
parameters:
interval: 30
- query: DELETE FROM table_b WHERE created_at < NOW() - (:interval || ' days')::interval
parameters:
interval: 30
You can also add your own storage cleaners.
To do this you have to implement Lamoda\Cleaner\CleanerInterface
and register your cleaner with tag:
services:
custom_cleaner:
class: My\Custom\Implementation
tags:
- { name: 'lamoda_cleaner.db', alias: 'custom' }
Bundle adds command to run cleaners.
Run all cleaners in DB:
./bin/console cleaner:clear db
or only one of them:
./bin/console cleaner:clear db queue