adgoal/cleaner-bundle

Symfony bundle for adgoal/cleaner library

Installs: 3 770

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 3

Type:symfony-bundle

v0.2 2020-02-18 08:38 UTC

This package is auto-updated.

Last update: 2024-11-16 18:13:28 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Build Status

Symfony Bundle for lamoda/cleaner library.

Installation

  1. Install the Bundle with composer:
$ composer require adgoal/cleaner-bundle
  1. Enable the Bundle:
<?php
// config/bundles.php

return [
    // ...
    Lamoda\CleanerBundle\LamodaCleanerBundle::class => ['all' => true],
    // ...
];
  1. 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' }

Usage

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