New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

marshmallow/laravel-folder-cleaner

Clean folders using a command. This can be helpful if you have temporary files in your projects that need to be cleaned for saving storage.
2,401
Install
composer require marshmallow/laravel-folder-cleaner
Latest Version:v1.4.0
PHP:^8.1
Laravel:9 – 13
License:MIT
Last Updated:Aug 13, 2026
Links: GitHub  ·  Packagist
Maintainer: marshmallow

alt text

Laravel Folder Cleaner

Latest Version on Packagist Tests Check & fix styling Total Downloads

Clean folders using a command. This can be helpful if you have temporary files in your projects that need to be cleaned for saving storage.

Installation

You can install the package via composer:

composer require marshmallow/laravel-folder-cleaner

You can install the package by running the command below. This installation command will publish a config file where you can let the package know what you wish to delete.

php artisan folder-cleaner:install

The following config file will now be published.

return [

    /**
     * You can specify the folders that should be cleaned in
     * this config array. We will search for these folders
     * in the root directory of you project.
     */
    'folders' => [
        // '/storage/logs',
        // '/storage' => [
        //     'older_than' => '3 months',
        //     'except' => [
        //         'important.log',
        //     ],
        // ],
        // '/storage/app' => [
        //     'older_than' => '1 day',
        //     'match' => '/^export_\d+\.xlsx$/',
        // ],
    ],
];

Usage

php artisan folder-cleaner:clean {--dry-run}

Run with --dry-run to print the files that would be deleted without actually removing them.

Options

In the config file you can specify a couple of settings to let the package know what should be cleaned.

If you just provide a string for a folder, all the files in this folder will be deleted when the command is run. Please not, this doesn't work recursively, folders will not be deleted.

return [
    'folders' => [
        // '/storage/logs',
    ]
];

You can also specify some settings as an array after the path of the folder. The example below will delete all files that are older then 3 months, match a patern of export_{number}.xlsx except for export_1.xlsx.

return [
    'folders' => [
        '/storage' => [
            'older_than' => '3 months',
            'match' => '/^export_\d+\.xlsx$/',
            'except' => [
                'export_1.xlsx',
            ],
        ],
    ]
];

If you have a directory which holds temporary directories that can deleted with all its content, you can use the delete_folders options. In the example below, all files in the download directory AND all sub directories in the download directory will be deleted once they are 7 days old.

return [
    'folders' => [
         '/storage/app/public/download' => [
            'delete_folders' => true,
            'older_than' => '7 days',
        ],
    ]
];

If you need more options, please let us know. This was enough for our use case at the moment of creating this package.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please report security vulnerabilities by email to stef@marshmallow.dev rather than via the public issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

marshmallow/helpers

A package containing all the helper function we can use throughout all our proje...

29,401 2
marshmallow/sluggable

Generate slugs when saving Eloquent models

21,244 0
marshmallow/redirectable

Store redirects via Nova and load them in your routes

13,240 0
marshmallow/laravel-database-sync

Sync your production database in to your local database to start developing with...

2,678 3
marshmallow/ip-access

Marshmallow - Laravel IP Access

12,239 0

Version History

Version Released PHP Laravel License
v1.4.0 ^8.1 ^9.0|^10.0|^11.0|^12.0|^13.0 MIT
v1.3.1 ^8.1 ^9.0|^10.0|^11.0|^12.0 MIT
v1.3.0 ^8.1 ^9.0|^10.0|^11.0|^12.0 MIT
v1.2.0 ^8.1 ^9.0|^10.0 MIT
v1.1.0 ^8.1 ^9.0|^10.0 MIT