tightenco/quicksand

此包已废弃,不再维护。未建议替代包。

轻松安排定期清理旧的软删除Eloquent数据。

v2.7.0 2024-03-12 12:07 UTC

README

Quicksand logo

Quicksand

Tests

在Eloquent模型或连接表软删除一定时间后,安排强制删除。

Quicksand是一个Artisan命令,您可以在计划任务中每天运行。

要求

  • 如果您使用Laravel 5.6或更高版本,请使用此包的2.0版本。
  • 如果您使用Laravel 5.5并运行PHP 7.1或更高版本,请使用此包的1.0版本。
  • 如果您使用Laravel 5.4或更低版本,或PHP 7.0或更低版本,请使用此包的0.2版本。

安装

  1. 将Quicksand添加到Composer文件中:composer require tightenco/quicksand

  2. config/app.php中注册Quicksand服务提供者(如果您使用Laravel 5.5或更高版本,由于包自动发现,可以跳过此步骤)

    'providers' => [
        ...
    
        Tightenco\Quicksand\QuicksandServiceProvider::class,
  3. 发布您的配置:php artisan vendor:publish --provider="Tightenco\Quicksand\QuicksandServiceProvider"

  4. 编辑您的配置。定义您希望Quicksand为您清理的类和/或连接表,Quicksand应该等待多少天来清理,以及是否记录结果。默认的'days'清理时间可以通过在注册模型或连接表时指定'days'键来覆盖

    1. 注意:删除时,Quicksand将忽略应用于模型的全局作用域。
    2. 注意:在版本2.3之前,deletables配置键名为models,且不支持连接表。
    'days' => 30,
    
    'deletables' => [
        App\Default::class,
        App\CleanEveryTwentyDays::class => [
            'days'  => 20 // override default 'days'
        ],
        'example_pivot',
        'example_pivot' => [
            'days'  => 20 // override default 'days'
        ]
    ]
  5. app/Console/Kernel.php中安排命令

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('quicksand:run')
            ->daily();
    }

使用自定义日志文件

如果您使用Laravel 5.6或更高版本,您可以通过在logging.php配置文件中添加一个quicksand通道来自定义Quicksand使用的日志记录器,如下所示

'channels' => [
    /* ... */
    'quicksand' => [
        'driver' => 'single',
        'path' => storage_path('logs/quicksand.log'),
        'level' => 'info',
    ],
]

如果您使用Laravel 5.5或更低版本,您可以通过编辑quicksand.php配置文件中的custom_log_file选项来自定义Quicksand使用的日志记录器。

默认情况下,Quicksand将记录到标准的laravel.log文件。

版本控制

我们使用SemVer进行版本控制。有关可用版本,请参阅此存储库的标签

作者

另请参阅参与此项目的贡献者列表

此包由Tighten开发和维护。

测试

您可以通过运行以下命令来测试此包:

composer test

许可

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE.md文件。