lamoda/cleaner
Lamoda Cleaner is a PHP library for purging old data from various storages, primarily databases. Includes configurable DB cleaners such as a Doctrine DBAL cleaner that runs parameterized cleanup queries to delete outdated records.
Artisan commands, cron jobs, or event listeners).Cleaner facade) to define rules per storage type. Easy to extend for custom storages.Illuminate\Support\Facades\Storage changes).spatie/laravel-activitylog if using similar patterns).#[\Override]). Test with PHP 8.1+.cleaner.php). May need validation for complex retention logic.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Deprecation Risk | High | Fork/rebase or replace with alternatives like spatie/laravel-schedule + custom cleanup jobs. |
| Storage Adapter Gaps | Medium | Extend StorageAdapter interface for unsupported systems (e.g., DynamoDB). |
| Performance Impact | Medium | Test with large datasets (e.g., 1M+ records). May need batching or queue-based processing. |
| Concurrency Issues | Low | Use Laravel’s queue system for parallel cleanup (if supported). |
| Data Loss Risk | Critical | Implement soft-delete fallback or backup triggers before cleanup. |
Model::where()->delete() + scheduled tasks) or dedicated tools (e.g., AWS S3 Lifecycle Policies).app/Console/Kernel.php) for automated runs.Illuminate/Contracts).lamoda/cleaner adapters (or identify gaps).Cleaner facade calls.| Component | Compatibility Notes |
|---|---|
| Laravel 8.x | Native support (tested). |
| Laravel 9/10/11 | May require: - composer.json overrides for deprecated methods. - Custom StorageAdapter for new filesystem APIs. |
| PHP 8.0+ | Check for strict_types, match expressions, or attribute usage. |
| Databases | Supports MySQL/Postgres via DB facade. NoSQL needs custom adapters. |
| Filesystems | Works with Laravel’s Storage facade (local, S3, etc.). |
schedule:run in cron).config/cleaner.php (e.g., logs: { "retention": "30 days" }).StorageAdapter for custom storages.config/cleaner.php (easy to update).Cleaner::clean([...])->log()).| Issue Type | Resolution Path |
|---|---|
| Laravel Version | Fork/rebase or use compatibility layer. |
| Storage Adapter | Extend StorageAdapter interface. |
| Rule Logic Errors | Add validation in CleanerServiceProvider. |
| Performance Issues | Optimize batch size or use queues. |
Cleaner::clean()->onQueue('cleanup')).chunk() for database cleanup to avoid locks.memory_limit).DB::transaction() to avoid long-running transactions.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Job Fails Silently | Data not cleaned up. | Add retry logic (e.g., retry:3). |
| Incorrect Retention Rules | Data deleted prematurely. | Implement **dry |
How can I help you explore Laravel packages today?