Garbage cleaner package for Laravel
Install package:
$ composer require misterpaladin/cleaner
Publish config file to your project:
$ php artisan vendor:publish --tag=cleaner
Add MisterPaladin\Cleaner\CleanerServiceProvider
to your config/app.php
providers array
/config/cleaner.php
file contents:
return [
// Delete file after 3 days and 12 hours
[
'path' => 'path/to/file.ext',
'expires' => [
'days' => 3,
'hours' => 12,
],
],
// Delete directory after 30 minutes
[
'path' => 'path/to/directory',
'expires' => [
'minutes' => 10,
],
],
// Delete directory contents after 1 week
[
'path' => 'path/to/directory/*',
'expires' => [
'weeks' => 1,
],
]
// Define a path array
[
'path' => [
'path/to/file.ext',
'path/to/directory',
'path/to/directory/*',
],
'expires' => [
'weeks' => 1,
],
]
];
The expires
option may accept:
- seconds
- minutes
- hours
- days
- weeks
- months
- years
[
'path' => 'path/to/file.ext',
'expires' => [
'days' => 3,
'hours' => 12,
],
'before' => function ($path) {
// Execute before deleting the file
},
'after' => function ($path) {
// Execute after deleting the file
},
],
Cleaner runs every minute (if you set it up: https://laravel.com/docs/5.4/scheduling#introduction)
Manual run: php artisan cleaner:run