myparcelcom/resource-cleanup 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

myparcelcom/resource-cleanup

Composer 安装命令:

composer require myparcelcom/resource-cleanup

包简介

Clean up soft-deleted and expired records from your Laravel application after a configurable cutoff date.

README 文档

README

Tests

A Laravel package to permanently delete soft-deleted or expired records based on a defined "cleanable" query scope or after a configurable cutoff date.

Requirements

  • PHP 8.2+
  • Laravel 9, 10, 11, or 12

Installation

composer require myparcelcom/resource-cleanup

Update Laravel's package auto-discovery cache

php artisan package:discover

Publish the config file:

php artisan vendor:publish --tag=resource-cleanup-config

Configuration

config/resource-cleanup.php:

return [
    // Records older than this many days will be deleted (default: 90)
    'default_retention_days' => env('RESOURCE_CLEANUP_RETENTION_DAYS', 90),

    // Valid models to clean up
    'models' => [
        \App\Models\Order::class,
        \App\Models\AuditLog::class,
    ],
];

Usage

Artisan Command

Run cleanup for all models defined in the config:

php artisan resource-cleanup:run

Target specific models from the config:

php artisan resource-cleanup:run --model=App\\Models\\Order

Preview what would be deleted without deleting anything:

php artisan resource-cleanup:run --dry-run

Per-Model Cutoff Dates

Implement the CleanableResource contract on any model to define its own retention period:

use Illuminate\Database\Eloquent\Builder;
use MyParcelCom\ResourceCleanup\Contracts\CleanableResource;

class AuditLog extends Model implements CleanableResource
{
    public static function scopeCleanable(): Builder
    {
        // narrow down the query scope by adding where() clauses
        return self::query();
    }
}

Testing

With Docker (recommended)

Build the container and run the test suite:

docker compose run --rm app

Run a specific test or filter:

docker compose run --rm app vendor/bin/phpunit --filter test_it_deletes_soft_deleted_records

Drop into a shell inside the container:

docker compose run --rm app bash

Run Composer commands without installing PHP locally:

docker compose run --rm app composer require some/package

Without Docker

composer install
composer test

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-07

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固