ambientia/data-cleaner

清除数据库中的旧数据

v2.0.0 2021-05-20 13:07 UTC

This package is auto-updated.

Last update: 2024-09-20 20:11:10 UTC


README

用于从数据库中清除旧数据的PHP库

创建提供者

<?php
namespace App\Module;

use Ambientia\DataCleaner\QueryProviderInterface;
use DateTime;
use Doctrine\Persistence\ManagerRegistry;
use Traversable;

class DataCleanerQueryProvider implements QueryProviderInterface
{

    private $doctrine;

    public function __construct(ManagerRegistry $doctrine)
    {
        $this->doctrine = $doctrine;
    }

    public function getItems(): Traversable
    {
        $qb = $this->doctrine->getManager()
            ->getRepository(Entity::class)
            ->createQueryBuilder('m');
        $qb->setParameter('date', new DateTime('-3 months'));
        $qb->andWhere($$qb->expr()->lte('m.ended', ':date'));

        foreach ($qb->getQuery()->iterate() as $item) {
            yield current($item);
        }
    }
}

添加cron任务

* * * * * ambientia:data-cleaner

开发中

运行Docker docker-compose up -d

bash到容器 docker/bash.sh

运行代码修复器

运行php cs fixer ./vendor/bin/php-cs-fixer fix

运行测试

使用phpunit运行测试 ./vendor/bin/phpunit

运行分析器

运行phan ./vendor/bin/phan