ambientia / data-cleaner
清除数据库中的旧数据
v2.0.0
2021-05-20 13:07 UTC
Requires
- php: 7.4.*
- doctrine/orm: ^2.8
- symfony/serializer-pack: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- phan/phan: ^2.2
- phpunit/phpunit: ^9.5
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